4
我有一個應用程序,用戶可以在我的應用程序的歡迎頁面中的區域設置之間動態切換。我發現較早的開發人員(繼承代碼沒有太多文檔)已經覆蓋了ViewHandler的以下三種方法,並告訴我這是動態切換語言環境所必需的...任何幫助都非常感謝JSF應用程序中的動態區域切換?
另外,讓我知道是否有處理這種
public Locale calculateLocale(FacesContext facescontext)
{
Locale userLocale = LocaleManager.getInstance().getCurrentLocale();
if (userLocale != null)
{
return userLocale;
}
else
{
return delegate.calculateLocale(facescontext);
}
}
public void renderView(FacesContext facescontext, UIViewRoot uiviewroot)
throws IOException, FacesException {
uiviewroot.setLocale(LocaleManager.getInstance().getCurrentLocale());
delegate.renderView(facescontext, uiviewroot);
}
public UIViewRoot createView(FacesContext facescontext, String s)
{
UIViewRoot view = delegate.createView(facescontext, s);
view.setLocale(LocaleManager.getInstance().getCurrentLocale());
return view;
}
謝謝你的建議。我被告知(在發佈問題之後)如果已經創建了jsf視圖,即使語言環境已被更改,恢復視圖也會以之前創建的相同語言環境呈現CURRENT視圖...您的建議是否處理了該問題? – 2010-10-04 21:54:05
恢復視圖是jsf生命週期中的一個階段,因此每次請求都會調用它。因此,下一個請求(例如重定向之後),您將擁有新的區域設置。 – Bozho 2010-10-05 12:45:09