2012-03-14 23 views
7

Lasciami condividere la mia unica delusione con le primefaces 3.1, fino ad ora ... Sto usando i componenti di un phew in un'app RichFaces, tutto bene quando ho realizzato un problema, alcuni caratteri nella mia lingua madre sono visualizzati in modo errato, anche Il set di caratteri UTF-8 che viene dichiarato in tutti i posti so che è richiesto.Come impostare il set di caratteri in una webapp primefaces?

Il problema si verifica quando viene immesso un carattere speciale come "São Paulo" in a e inviato la pagina. I dati dopo presentare è visualizzata di nuovo come "ASA £ o Paulo"

Ho già provato il folowing work-around:

1) Eclipse IDE: file di testo il circuito di codifica opzione

2) file 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) del file JSF:

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

6) aggiornare la versione primefaces a 3,2

Grazie per qualsiasi aiuto! ;-)

+1

Vale la pena notare che PrimeFaces 3.2 è stato rilasciato. Non so se questo risolva il tuo problema, ma immagino che non possa far male provarlo. –

+0

provato ora, non risolve il mio problema ... grazie comunque! – Guilherme

+1

Stai usando RichFaces o PrimeFaces? Hai urlato "RICHFACES" che è piuttosto confuso. Se RichFaces, stai usando JSP o Facelets? Si prega di descrivere il problema in modo più dettagliato, non è chiaro come e dove si sta verificando esattamente il problema. Descrivere dettagliatamente i passaggi su come riprodurre il problema. Descrivere i risultati attesi/inattesi in dettaglio. Per esempio. "Ho inserito XYZ in un' h: inputText', dopo averlo inviato si visualizza nuovamente come ZYX in 'h: outputText'" e così via. – BalusC

risposta

9

sono stato costretto a creare un filtro che mette il set di caratteri per ogni richiesta ...

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 
    } 

} 

che di risolvere il mio problema

1

Ho appena rimuovere il commento che parte in conf/web.xml (server Tomcat web.xml) che filtra tutte le richieste e converte in 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> 
Problemi correlati