2011-02-17 37 views
2

用於使用新選擇的語言環境呈現形式我的Ajax代碼是:JSF 2 - 的Ajax - 表格不完全呈現

<h:selectOneMenu id="selectLang" immediate="true" value="#{langListing.language}"> 
    <f:ajax listener="#{langListing.changeLocale}" render="@form" /> 
    <f:selectItems value="#{langListing.languages}" /> 
</h:selectOneMenu> 

然而,由於在稱爲header.xhtml頭文件上述碼,上述代碼僅在英語和法語之間切換語言環境時纔會呈現header.xhtml的內容。我的index.xhtml結構如下:

​​

我怎樣才能使名爲menu.xhtml,主體部分和footer.xhtml在同一時間,我呈現header.xhtml?

回答

3

@form隻影響父母<h:form>的內容。改爲使用@all

<f:ajax listener="#{langListing.changeLocale}" render="@all" /> 

又見render屬性的在<f:ajax> tag documentation描述。

但是,由於更改語言環境會影響整個頁面,因此您可以考慮啓動同步請求而不是ajaxical。要實現此目的,請刪除<f:ajax>標記,將onchange="submit()"添加到下拉列表中,並將changeLocale()中的代碼移動到setLanguage()方法中。有關具體示例,另請參閱this answer

+0

我會看看鏈接,並會回覆給你。 – ChuongPham 2011-02-17 18:26:54