【发布时间】:2013-05-13 12:09:33
【问题描述】:
我有一个链接可以在 xhtml 中从 lang 1 切换到 lang 2:
<p:commandLink value="#{msgs['home.french']}" id="frenchLink"
rendered="#{mainBean.changeLanguage.getLanguage() ne 'fr'}"
actionListener="#{mainBean.refreshPage}" ajax="false">
<f:param name="selectedLanguage" value="fr"/>
</p:commandLink>
<p:commandLink value="#{msgs['home.english']}" id="englishLink" r
endered="#{mainBean.changeLanguage.getLanguage() ne 'en'}" actionListener="#{mainBean.refreshPage}" ajax="false">
<f:param name="selectedLanguage" value="en"/>
</p:commandLink>
在 mainBean 中,
public void refreshPage(ActionEvent event){
FacesContext context = FacesContext.getCurrentInstance();
String language = context.getExternalContext().getRequestParameterMap().get("selectedLanguage");
changeLanguage = new ChangeLanguage();
ChangeLanguage.setLanguage(language);
String viewId = context.getViewRoot().getViewId();
ViewHandler handler = context.getApplication().getViewHandler();
UIViewRoot root = handler.createView(context, viewId);
root.setViewId(viewId);
context.setViewRoot(root);
context.renderResponse();
}
总是得到 Uncaught TypeError: Object # has no method 'replace' on primefaces.js
仅当我切换到法语和具有 selectOneMenu、对话框的页面时才会弹出这些问题。
对此表示赞赏。
应用使用 Jsf 2.0、Primefaces 3.5
【问题讨论】:
-
我还需要保留视图页面的详细信息,这就是我使用处理程序将其设置回上下文的原因。
-
主要问题似乎在 primefaces js 重新加载时蔓延。我是否需要在 web.xml 中明确提及与 primefaces 相关的内容??
-
您是否手动包含另一个 jQuery 副本?如果是这样,为什么?
标签: javascript jsf primefaces