我有從實體類一個NetBeans 7.3.1模板,在Glassfish的4託管製作一個簡單的XHTML頁面實體類僅包含兩個字段,一個ID
和一個Name
。如果我在「名稱」字段中輸入「café
」字樣,則會節省「café
」。我已經按照互聯網上發佈的所有建議,但都失敗了。他們都沒有工作過,至少沒有JSF 2.2。請求參數編碼似乎不能設置爲UTF-8
我試圖創建一個自定義過濾器;使用Spring CharacterEncodingFilter
過濾器,標題都包含字符集 - > UTF-8。我用Firebug檢查了頁面的字符集,它說UTF-8。
我跑出來的想法。有人有嗎?
順便說一句,在同一個網站項目包含一個RESTful Web服務和Web服務的工作完全保存相同的實體和相同的值(café
)。所以,這讓我得出結論:問題出在Facelets上,但是在哪裏?
我使用這個過濾器:
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void destroy() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
和web.xml
:
<filter>
<filter-name>UTFEncodingFilter</filter-name>
<filter-class>filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UTFEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
東西告訴我,這個過濾器沒有被使用,我放在throw Exception
上Init
方法,以及網頁加載並正常發佈。
@BalusC,你必須停止拖曳良好的質量保證職位。你能看到你在做什麼嗎?你說正確的答案是錯誤的,你說我是問題,然後你叫我愚蠢,你改變了一個很好的帖子標題,顯示我正在使用的JSF的特定版本,最後你發佈了一個不起作用的答案對於這個版本的JSF(我沒有例外嘗試)。你怎麼了?如果你願意,你可以提供新的建議,但取消其他人的工作資格並不會讓你獲得任何地方的幫助。 –
答案顯示了Glassfish特定的解決方案,而不是JSF特定的解決方案,因此不便攜;我並沒有直接親自給你打電話,只是因爲原來的標題和代碼的組合,你看起來很愚蠢; JSF版本已經提到了問題;你沒有提到你沒有例外地嘗試過。我的答案適用於我,否則我沒有發佈。顯然,在你的環境中有更多的問題。也許你正在使用PrimeFaces?或者你實際上是在處理GET請求而不是POST請求? – BalusC