如何解决在JSF和Primefaces中使用标题的奇怪字符时的编码问题



我在编码值的麻烦。我正在开发一个带有西班牙语内容的网页,它使用ó, ,è等标题或ñ等字符。然后,当我按下按钮保存值,我猜一个按钮的ajax事件没有采取编码,他们我添加encoding='ISO-8859-1',它工作。但是我有一个自动补全的国家,也使用ajax事件来处理信息,对于这个领域的编码不工作,之前添加encoding='ISO-8859-1'它工作。当解一个时,另一个就失败了,反之亦然。

碰巧我需要国家咨询各州并列出它们。

Web代码:

<p:autoComplete id="pais" value="#{personal.pais}"   
                    completeMethod="#{personal.listPaises}" forceSelection="true" required="true" effect="fade" scrollHeight="400" 
                    var="p"  itemLabel="#{p}" itemValue="#{p}" requiredMessage="Es necesario seleccionar país" label="País" validator="#{personal.validatePaises}" >
                     <p:column style="width:80%" >  
                      #{p} 
                      </p:column>
                    <p:ajax event="itemSelect" update="departamento" />  
                 </p:autoComplete>

Java Code:

public void setPais(String pais) {
        int codPais = pDao.getPaisCod(pais); 
        departamentosList = pDao.listDepatamentosByPais(codPais);
        this.pais = pais;
    }
例如,如果我选择España作为jsf形式的Country,则在bean中取Espa±a

我需要统一编码。

您应该使用UTF-8,它将支持任何字符,更重要的是它是唯一的编码,一切都有共同之处。通常有些东西只适用于UTF-8,比如许多JSON实现。如果不是这种情况,JSON无论如何都不能支持ISO-8859-1。

例如,primeface的Ajax使用jQuery。参数,使用encodeURIComponent,使用基于UTF-8的URL编码。

所以如果你想统一编码,UTF-8是你唯一的选择。

顺便说一句,通过"使用UTF-8",我的意思不是仅仅把UTF-8放在一个随机的地方,似乎是正确的,但实际上确保UTF-8是在你的项目中声明的和物理编码。

我知道我的问题是自动完成和命令按钮的ajax请求。然后我尝试了所有的方法,但都没有用。我解决了我的问题改变我的jsf commandButton到Primefaces commandButton。

之前

<h:commandButton value="submit" action="Periodico?faces-redirect=true" actionListener="#{personal.insertarUsuario}" />

<p:commandButton value="submit" action="Periodico?faces-redirect=true" actionListener="#{personal.insertarUsuario}" />

所以我解决了我的问题。非常感谢您的时间和回答

相关内容

  • 没有找到相关文章

最新更新