Glassfish 4 でホストされている Entity クラスの Netbeans 7.3.1 テンプレートによって作成された単純な xhtml ページがあります。Entity クラスには、 anID
と a の2 つのフィールドしか含まれていませんName
。「名前」フィールドに「 」という単語を書き込むと、「café
」が保存されcafé
ます。私はインターネットに投稿されたすべての推奨事項に従いましたが、すべてが惨めに失敗しました. 少なくとも JSF 2.2 では、どれも機能していません。
カスタム フィルターを作成してみました。SpringCharacterEncodingFilter
フィルターを使用すると、すべてのヘッダーに charset->UTF-8 が含まれます。ページの文字セットを Firebug で確認したところ、UTF-8 と表示されています。
私はアイデアが不足しています。持ってる人いる?
ところで、同じ Web サイト プロジェクトには 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>
このフィルターが使用されていないことがわかりました。on メソッドを配置するthrow Exception
とInit
、ページが正常に読み込まれ、投稿されます。