我有一个使用RichFaces的4自动完成组件及以下JSF 2页和Java bean来实现在JSF搜索表单。 我使用Tomcat 6&7运行应用程序。
...
<h:commandButton value="#{msg.search}" styleClass="search-btn" action="#{autoCompletBean.doSearch}" />
...
在AutoCompleteBean
public String doSearch() {
//some logic here
return "/path/to/page/with/multiple_results?query=" + searchQuery + "&faces-redirect=true";
}
这只要作品以及一切withing的“SEARCHQUERY”字符串是拉美-1,它不一样,如果是Latin-1的外面工作。
例如,对于“博德”的搜索将自动编码为“BOD%F8”。 然而,对于“克拉咚”的搜索将无法正常工作,因为它是无法编码“d”。
现在我已经尝试了几种不同的方法来解决这个问题,但他们没有工作。
- 我曾尝试编码SEARCHQUERY使用URLEncode的我自己,但既然%被编码为%25这仅导致双编码。
- 我一直在使用java.net.URI中得到的编码试过,但给出了相同的结果URLEncode的。
- 我试图在连接器使用的URIEncoding =“UTF-8”在Tomcat中打开UTF-8但此后非ASCII字符不会在所有的工作这只是加剧了这一问题。
所以,我的问题:
- 我可以改变JSF 2的方式编码的GET参数?
- 如果我不能改变JSF 2编码的GET参数的方式,我可以把编码的和做手工?
- 我是不是哪里奇怪吗? 这似乎喜欢的事,应予以支持外的开箱,但我不能找到同样的问题任何人。