JSP页面url传递参数编码问题

在搜索的时候将中文传递到后台,但是地址栏是明文传递,解决办法就是将参数编码。

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");

posted @ 2018-01-18 09:58  Bob_C  阅读(2700)  评论(0编辑  收藏  举报