2013-02-28 38 views
0

我在编码值时遇到了麻烦。那么我正在开发一个西班牙文内容的网页,它使用像ó,á,è等等或像ñ这样的字符。然后当我按下按钮来保存这些值时,我猜ajax事件对于一个按钮来说并没有采用这种编码方式,我添加了encoding='ISO-8859-1',它工作正常。但是我有一个自动完成功能,用于那些也使用ajax事件来处理信息的primefaces,并且对于这个字段,编码不起作用,并且在它添加encoding='ISO-8859-1'之前工作。那么当解决这个问题时,另一个失败,反之亦然。如何在JSF和Primefaces中使用标题中的奇怪字符时解决编码问题

发生了,我需要该国咨询各州并列出它们。

网页代码:

<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代码:

public void setPais(String pais) { 
     int codPais = pDao.getPaisCod(pais); 
     departamentosList = pDao.listDepatamentosByPais(codPais); 
     this.pais = pais; 
    } 

例如,如果我选择西班牙在JSF表单国家,在bean被视为宜山路±一个

我需要统一编码。

非常感谢。

+1

您需要UTF-8编码 – 2013-02-28 15:48:12

+0

谢谢@LuiggiMendoza,但它不起作用。我试过了,自动完成工作,但没有保存表单。 – 2013-02-28 15:50:34

+1

相关:http://stackoverflow.com/q/4923607/1065197 – 2013-02-28 15:54:20

回答

1

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

例如,primeface的Ajax使用jQuery.param,它使用encodeURIComponent,它使用的URL编码是based on UTF-8

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

顺便说一下,通过“使用UTF-8”,我并不意味着仅仅把UTF-8放在一个随机的地方,看起来是正确的,但实际上确保UTF-8是你项目中任何地方的声明和物理编码。

+0

我知道,我的问题是随着outocomplete和命令按钮Ajax请求。他们我尝试了一切,并没有工作。好,我解决我的proble改变我的JSF命令按钮来Primefaces命令按钮。 – 2013-02-28 22:45:08

0

我知道我的问题是自动完成和commandButton的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}" />

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