jsp的一个文本框的value值是通过el表达式获取的,这是一个搜索功能,输入中文后搜索成功,可是搜索成功过后这个文本框显示为乱码。
过滤器、统一jsp页面编码等等在网上找了好久都没解决,也许是搜到了我不能理解而没有运用上,最后发现页面传的中文到bean里面时,到set的时候就乱码了,
所以在set这里就通过:
try
{
keyword = new String(keyword.getBytes("ISO-8859-1"),"UTF8");
keyword = java.net.URLDecoder.decode(keyword, "UTF-8");
}
catch (Exception e)
{
e.getMessage();
}
进行转换,到页面通过el表达式获取时就正常了,但是如果页面搜索到的内容分页后有多页的话,点击别的页会再次set,所以通过一个布尔表达式控制,如果是点击分页而不是搜索就在bean里面的set时不转换就ok了。
不知道这样转换还有哪些方面没有考虑到,希望看出问题的童靴不吝指教。