2012-03-14 49 views
7

讓我分享我對於primefaces 3.1的獨特失望,直到現在... 我在RichFaces應用程序中使用了phew組件,當我意識到問題時,我的一些字符顯示錯誤,在所有我知道它是必需的地方聲明UTF-8字符集。如何在primefaces webapp中設置字符集?

問題發生時,輸入一些特殊的字符,如「聖保羅」a和submited頁面。提交數據後重新顯示是爲 「SAA£聖保羅」

我已經嘗試過如下因素變通:

1)的Eclipse IDE:文本文件enconding選項

2)JSF文件:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

3)JBOSS server.xml中:

<Connector protocol="HTTP/1.1" URIEncoding="UTF-8" port="${jboss.web.http.port}" address="0.0.0.0" 
     redirectPort="${jboss.web.https.port}" /> 

4)的web.xml:

<?xml version="1.0" encoding="UTF-8"?> 

5)JSF文件:

<h:form acceptcharset="UTF-8" enctype="application/form-data"> 

6)primefaces版本升級到3.2

感謝您的幫助! ;-)

+1

值得注意的是,PrimeFaces 3.2已經發布。我不知道這是否能解決你的問題,但我想這不會傷害嘗試。 – 2012-03-15 04:04:45

+0

現在試過,不解決我的問題... thanx反正! – Guilherme 2012-03-15 12:17:31

+1

你使用的是RichFaces還是PrimeFaces?你大喊「RICHFACES」,這相當混亂。如果RichFaces,您使用的是JSP還是Facelets?請更詳細地描述問題,但不清楚問題發生的方式和位置。詳細描述如何重現問題的步驟。詳細描述預期/意外結果。例如。 「我在'h:inputText'中輸入XYZ後,在'h:outputText'中重新顯示爲ZYX,等等。 – BalusC 2012-03-15 12:33:44

回答

9

我一直被迫創建過濾器誰套爲每個請求的字符集...

public class CharacterEncodingFilter implements Filter { 

    @Override 
    public void destroy() { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, 
     FilterChain chain) throws IOException, ServletException { 
     response.setCharacterEncoding("UTF-8"); 
     request.setCharacterEncoding("UTF-8"); 
     chain.doFilter(request, response); 
    } 

    @Override 
    public void init(FilterConfig arg0) throws ServletException { 
     // TODO Auto-generated method stub 
    } 

} 

這是解決我的問題

1

我只是取消註釋部分的conf/web.xml(Tomcat服務器web.xml)過濾所有請求並轉換爲UTF-8。

<!-- A filter that sets character encoding that is used to decode URIs--> 
<!-- parameters in a POST request --> 
<filter> 
     <filter-name>setCharacterEncodingFilter</filter-name> 
     <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> 
     <init-param> 
      <param-name>encoding</param-name> 
      <param-value>UTF-8</param-value> 
     </init-param> 
</filter> 

    <!-- The mapping for the Set Character Encoding Filter --> 
    <filter-mapping> 
     <filter-name>setCharacterEncodingFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
相關問題