2014-07-03 27 views
1

我有一個更新值與ap:commandbutton.when p:commandButton中,我設置ajax =「true」所有東西都是好的,但當我設置ajax =「false」時,值p:inputText不編碼,並在下一頁中顯示我ÙرÛÙ。或者當發送到mysql數據庫。 我正在使用過濾器,但我的問題沒有解決。Primefaces ajax charset

請幫我 感謝

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:p="http://primefaces.org/ui"> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
    <h:head> 
     <title>Facelet Title</title> 
    </h:head> 
    <h:body> 
     <h:form> 
      <p:inputText value="#{bean.name}" /> 
      <p:commandButton value="check" ajax="false" action="page2"/> 
     </h:form> 
    </h:body> 
</html> 
+0

你應該把第h內的元標籤:頭。如果您想避免在所有頁面中執行此操作,您也可以在模板或PhaseListener中執行此操作。 –

+0

嗨,謝謝,但請給我詳細的元標籤或模板與PhaseListener – Farzadmehr

回答

2

我應該使用解決這個問題的過濾器。

<filter> 
    <filter-name>EncodingFilter</filter-name> 
    <filter-class>myengineer.EncodingFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>EncodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

和Java類過濾

package myengineer; 

import java.io.IOException; 

import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 

/** 
* 
* @author alfa 
*/ 
public class EncodingFilter implements Filter{ 
        ///=================================================================================== 
public void init(FilterConfig config) throws ServletException { 
    //No-op 
} 
    ///=================================================================================== 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain  chain) 
                 throws IOException,  ServletException { 
     request.setCharacterEncoding("UTF-8"); 
     response.setCharacterEncoding("UTF-8"); 
     chain.doFilter(request, response); 
    } 
    ///================================================================================== 
    public void destroy() { 
     //No-op 
    }  
    ///=================================================================================== 
}