私はRichFaces 4オートコンプリートコンポーネントと次のJSF 2ページとJava Beanを使用して実装されたJSFの検索フォームを用意しています。 Tomcat 6 & 7を使ってアプリケーションを実行します。 AutoCompleteBeanJSFでのGETパラメータのUTF-8エンコード
public String doSearch() {
//some logic here
return "/path/to/page/with/multiple_results?query=" + searchQuery + "&faces-redirect=true";
}
で
...
<h:commandButton value="#{msg.search}" styleClass="search-btn" action="#{autoCompletBean.doSearch}" />
...
これは「SEARCHQUERY」文字列をwithingすべてがラテン1にあるようラテン-1の外にある場合、それは動作しない限り有効です。
たとえば、「bodø」の検索は自動的に「bod%F8」とエンコードされます。ただし、 "Ð"をエンコードすることができないため、 "KraÐong"の検索は機能しません。
私は今、これを解決するためにいくつかの異なるアプローチを試みましたが、いずれも機能しません。
- 私はURLEncodeを使用して自分のsearchQueryをエンコードしようとしましたが、これは%が%25としてエンコードされているため、二重エンコードになります。
- java.net.URIを使用してエンコードを取得しようとしましたが、URLEncodeと同じ結果が得られます。
- URIEncoding = "UTF-8"を使用してTomcatでUTF-8を有効にしようとしましたが、これは非ASCII文字がまったく機能しないため、この問題を悪化させるだけです。
私の質問にそう:
- 私はJSF 2は、GETパラメータを符号化する方法を変更することはできますか?
- JSF 2でGETパラメータをエンコードする方法を変更できない場合、エンコードを変更して手動で行うことはできますか?
- 私はここで何か変なことをしていますか?これは、すぐにサポートされるべきもののようですが、私は同じ問題を持つ他のものを見つけることができません。
はい、これは機能します。ありがとう! – oyse
あなたは大歓迎です:) – BalusC