我在编码值的麻烦。我正在开发一个带有西班牙语内容的网页,它使用ó, 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}" />
所以我解决了我的问题。非常感谢您的时间和回答