Javascript 未捕获类型错误:对象#<;对象>;没有方法';更换';关于primefaces.js

Javascript 未捕获类型错误:对象#<;对象>;没有方法';更换';关于primefaces.js,javascript,jsf,primefaces,Javascript,Jsf,Primefaces,我有一个链接可以在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

我有一个链接可以在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>
始终获取未捕获的TypeError:Object#在primefaces.js上没有方法“replace”

只有当我切换到法语和带有SelectOne菜单、对话框的页面时,这些问题才会弹出

任何关于这一点的指点都将不胜感激


应用程序使用JSF2.0、Primefaces 3.5在yor faces-config.xml中定义默认语言

 <application>
       <locale-config>
            <default-locale>en</default-locale>
       </locale-config>
 </application>
添加方法以更改语言

public void changeLanguage(){
        FacesContext context = FacesContext.getCurrentInstance(); 
        String language = context.getExternalContext().getRequestParameterMap().get("selectedLanguage");
        context.getViewRoot().setLocale(countries.get(language));
}
在您的视图中(xhtml):



我还需要保留查看页面的详细信息,这就是为什么我要使用处理程序将其设置回上下文。主要问题似乎是primefaces js重新加载时出现的。我是否需要在web.xml中明确提到一些与primefaces相关的内容?您是否手动包含另一个jQuery副本?如果是,具体原因是什么?没有解释,但这是一个比所建议的形式更有效的解决方案。
private static Map<String,Locale> countries;
    static{
        countries = new HashMap<String,Locale>();
        countries.put("fr", Locale.FRANCE);
        countries.put("en", Locale.ENGLISH);
    }
public void changeLanguage(){
        FacesContext context = FacesContext.getCurrentInstance(); 
        String language = context.getExternalContext().getRequestParameterMap().get("selectedLanguage");
        context.getViewRoot().setLocale(countries.get(language));
}
<p:commandLink value="#{msgs['home.french']}" id="frenchLink" 
    rendered="#{mainBean.changeLanguage.getLanguage() ne 'fr'}"    
    actionListener="#{mainBean.changeLanguage}" ajax="false" 
    oncomplete="javascript:location.reload(true)">  
  <f:param name="selectedLanguage" value="fr"/>
</p:commandLink>

<p:commandLink value="#{msgs['home.english']}" id="englishLink"
    rendered="#{mainBean.changeLanguage.getLanguage() ne 'en'}"  actionListener="#{mainBean.changeLanguage}" ajax="false" 
    oncomplete="javascript:location.reload(true)">
    <f:param name="selectedLanguage" value="en"/>
</p:commandLink>