這個問題是舊Language switcher implementation in JSF 2的後續行動。JSF語言切換器和阿賈克斯更新
雖然PrimeFaces已經發布了一些更新的版本,但問題的實質仍然有效,而且我的JSF知識比以前好了一些。總結一下,我有一個單獨的xhtml頁面,完全ajaxified。
語言切換器是這樣的:
<h:form id="selectLanguage" >
<p:commandLink action="#{languageSwitcher.setLanguage('it')}" rendered="#{languageSwitcher.language!='it'}" >
<h:graphicImage library ="images" name="it.gif" title="it" />
</p:commandLink>
<p:commandLink action="#{languageSwitcher.setLanguage('en')}" rendered="#{languageSwitcher.language!='en'}" >
<h:graphicImage library ="images" name="en.gif" title="en" />
</p:commandLink>
</h:form>
我想,當選擇it
,只顯示en
標誌,反之亦然。我希望網頁中的所有內容都用資源包翻譯進行更新。
特別是,我有一些p:dialog
S的頭標屬性也需要更新。 對話框形式是每個對話框內:
<p:dialog header="#{msgs.myHeader}" ... >
<h:form .... />
</p:dialog >
在網頁的其餘部分是含有一些layoutUnits一個<p:layout>
。每個layoutUnit
都包含一個表單,其中還需要翻譯其他組件。
LanguageSwitcher是SessionScoped
JSF Managed Bean
。
我已經嘗試了所有的方法如下:
<f:ajax render="@all" />
的p:commandLink
括號內update="@all"
屬性中p:commandLink
<p:ajax update="@all" />
的p:commandLink
括號
可惜裏面,他們沒有作品。
我試過用@all
,雖然我可以插入表單的ID,但它們並不多。問題在於對話頭不以這種方式更新。
我使用PrimeFaces 3.4.1 - 鑽嘴魚科2.1.13
還沒有讀完整個問題,但簡單的'
Daniel
您使用了哪種瀏覽器? PrimeFaces的'@ all'在IE中失敗,無法後處理檢索到的JavaScript(修復程序爲3.4.2)。 ''在'
'中不起作用,用''代替。 –
BalusC
感謝您的寶貴意見。 @丹尼爾:我確實需要阿賈克斯。 – perissf