تگ f:ajax در jsf چه کاربردی دارد؟

0 رأی
میانگین بازدید روزانه 0.25590 بازدید

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


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

 

سوال 6 سال قبل در تالار برنامه نویسی توسط aminiS (479 امتیاز)
ویرایش 6 سال قبل توسط Saeed Zarinfam

2 جواب

+1 رأی
 
بهترین جواب

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

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

 

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

 

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

جواب 6 سال قبل توسط hosein_masbough (938 امتیاز)
انتخاب شده در 6 سال قبل توسط aminiS
+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 به سرور می فرستد.

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

سوال های مشابه

+1 رأی
2 جواب میانگین بازدید روزانه 0.09219 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.06134 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.05127 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.0491 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.06137 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.05137 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1126 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.06101 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.09150 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.09177 بازدید
کانال تلگرام جواب یاب
...