在搜索的时候将中文传递到后台,但是地址栏是明文传递,解决办法就是将参数编码。
searchField : function searchField(){
$("#btn-search").click(function(){
var searchStr = $("#txt-search").val();
//alert(searchStr);
if(searchStr != "")
document.location.href = document.getElementsByTagName('base')[0].href
+ "admin/common/field-list"+ "?searchStr=" + encodeURIComponent(encodeURIComponent(searchStr));//使用encodeURIComponent进行编码
else document.location.href = document.getElementsByTagName('base')[0].href + "admin/common/field-list"; }); }
后台接收时解码:
@RequestMapping(value = "/admin/common/field-list", method = RequestMethod.GET)
public String fieldListPage(HttpServletRequest request,Model model, @RequestParam(value = "page", required = false, defaultValue = "1") int index,@RequestParam(value="searchStr",required=false,defaultValue="") String searchStr){
log.info("searchStr"+searchStr);
try {
searchStr = java.net.URLDecoder.decode(searchStr, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Page<Field> page = new Page<Field>();
page.setPageNo(index);
page.setPageSize(8);
List<Field> fieldList = new ArrayList<Field>();
if(null != searchStr && searchStr.length()>0){
fieldList = questionService.getFieldBySearchStr(searchStr, page);
}else{
fieldList = questionService.getAllField(page);
}
String pageStr = PagingUtil.getPagelink(index, page.getTotalPage(), "", "admin/common/field-list");
model.addAttribute("searchContext", searchStr);
model.addAttribute("fieldList", fieldList);
model.addAttribute("pageStr", pageStr);
return "field-list";
}
http://www.jb51.net/article/45293.htm
java.net.URLDecoder.decode((String)request.getParameter("tcontent"), "UTF-8");