2
我得到這個錯誤:JSF 2 - 阿賈克斯找不到屬性
execute="#{localeManager.changeLocale}": Property 'changeLocale' not found on type xyz.com.i18n.LocaleManager
其中LocaleManager是:
@ManagedBean
@ViewScoped
public class LocaleManager implements Serializable
{
// other codes here
public static void changeLocale(AjaxBehaviorEvent event) {
newLocale = (Locale) new Locale((String) event.toString());
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("selectedLocale", newLocale);
}
}
,我在這裏調用Bean的方法:
<h:selectOneMenu id="selectLang" immediate="true" value="#{langListing.language}">
<f:ajax event="change" execute="#{localeManager.changeLocale}" />
<f:selectItems value="#{langListing.languages}" />
</h:selectOneMenu>
我通過試驗這段代碼來學習AJAX。但我不明白Ajax如何評估bean的方法。這是一個直接的問題要解決嗎?
太棒了!謝謝。有沒有辦法從h:selectOneMenu獲取選定的值? event.toString()只返回事件。我查看了Eclipse中的內容幫助,但無法找到返回h:selectOneMenu中所選值的方法。 – ChuongPham 2011-02-17 14:37:10