0 امتیاز
قبل در برنامه نویسی توسط (479 امتیاز)
ویرایش شده قبل توسط

تگ زیر چه کاربردی دارد؟


 <f:ajax execute="@all" render="@this"/>

 

2 پاسخ

+1 امتیاز
قبل توسط (938 امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

برای افزودن قابلیت Ajax به درخواست های صورت گرفته از طرف یک component خاص است.بدین شکل که دیگر لازم نیست که برای نمایش اطلاعات دریافتی کل صفحه دوباره بارگذاری شود و فقط component مورد نظر  refresh میشود.

render : کدوم کامپوننت ها بعد از اتمام عملیات سرور باید در سمت کلاینت به روز رسانی شوند و داده هایشان را از نو سمت سرور بگیرند.یعنی فقط این بخش ها بعد از رسیدن پاسخ از سمت سرور به روزرسانی شوند و نه کل صفحه

 

execute: بدین معنی که کدوم کامپوننت ها باید اطلاعاتشونو به سرور بفرستند و سمت سرور داده های آنها گرفته شود.یعنی درخواستی که در حال رفتن به سمت سرور است فقط شامل اطلاعات این کامپوننت ها باشد و نه کل صفحه.بصورت پیش فرض تنها خوده همین کامپوننت جاری را میفرستد یعنی @this می باشد.@all بمعنی همه کامپوننت های داخل این صفحه می باشد.

 

http://docs.oracle.com/javaee/7/tutorial/doc/jsf-ajax.htm#GKIOW

+1 امتیاز
قبل توسط (1.1هزار امتیاز)

این تگ در JSF 2 و facelet اضافه شده و سبب می شود قابلیت ajax به کامپوننت های facelet اضافه شود. به مثال زیر توجه کنید:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">
<h:head />
<body>
<h:form>
    <h:commandButton value="Click">
        <f:ajax render="message" listener="#{ajaxBean.handleEvent}" />
    </h:commandButton>
    <h:outputText id="message" value="#{ajaxBean.message}" />
</h:form>
</body>
</html>

و کد ManagedBean:

package com.mycompany;
 
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.event.AjaxBehaviorEvent;
 
@ManagedBean
@RequestScoped
public class AjaxBean {
 
    private String message;
 
    public String getMessage() {
        return message;
    }
 
    public void handleEvent(AjaxBehaviorEvent event) {
        message = "Hello World";
    }
 
}

در این مثال با افزوده شدن تگ f:ajax به کامپوننت commandButton، این کامپوننت بجای submit اطلاعات به سرور در خواست ajax به سرور می فرستد.

قبل توسط (479 امتیاز)
در مورد خاصیت های execute = @all و @this  هم میشه یه توضیح مختصری بفرمایید.

سوالات مشابه

+1 امتیاز
2 پاسخ 454 بازدید
0 امتیاز
1 پاسخ 329 بازدید
0 امتیاز
1 پاسخ 310 بازدید
+1 امتیاز
1 پاسخ 346 بازدید
+1 امتیاز
2 پاسخ 733 بازدید
سوال شده 10 سال قبل در کامپیوتر و اینترنت توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 467 بازدید
0 امتیاز
0 پاسخ 220 بازدید
+1 امتیاز
1 پاسخ 344 بازدید
...