浏览 2695 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-02-10
最后修改:2012-02-11
尹标平(122054810) 22:46:16 关于胡雅辉同学所提ajax get方式提交中文参数乱码问题解决办法: $.ajax({ url:'${pageContext.request.contextPath}/utf8/generalAjaxGet.page', contentType : "application/x-www-form-urlencoded", type:'get', dataType:'json', data:{ id:id, name:encodeURIComponent(name), remark:encodeURIComponent(remark) }, success:function(json){ alert(json.data); } }); 在jsp页面的js函数中,对包含中文的name,remark参数采用encodeURIComponent函数编码,例如:remark:encodeURIComponent(remark) 服务器端SimpleEntity对象中的属性name和remark分别添加@RequestParam注解,并指定decodeCharset属性为UTF-8: @RequestParam(decodeCharset="UTF-8") private String name; @RequestParam(decodeCharset="UTF-8") private String remark; 问题即可解决,目前只想到这个办法,至于其他方法暂时没有想到 尹标平(122054810) 23:00:35 同时服务器端控制器方法要改为,这样数据到客户端后就不会有乱码: public @ResponseBody AjaxResponseBean generalAjaxGet(SimplEntity entity, HttpServletRequest request,HttpServletResponse response){ AjaxResponseBean ajaxResponseBean=new AjaxResponseBean(); ajaxResponseBean.setStatus("success"); try { ajaxResponseBean.setData(entity); } catch (Exception e) { ajaxResponseBean.setStatus("error"); ajaxResponseBean.setData(e.getMessage()); } return ajaxResponseBean; } 这样MVC框架的Json转换插件自动会把数据转换为json格式响应到客户端,客户端获取json结果数据的最终方式为: $.ajax({ url:'${pageContext.request.contextPath}/utf8/generalAjaxGet.page', contentType : "application/x-www-form-urlencoded", type:'get', dataType:'json', data:{ id:id, name:encodeURIComponent(name), remark:encodeURIComponent(remark) }, success:function(json){ alert(json.data.name); alert(json.data.remark); } }); 尹标平(122054810) 23:03:09 同时要确保bboss-mvc的httpMessageConverters中有以下配置项: <property class="org.frameworkset.http.converter.json.MappingJacksonHttpMessageConverter"/> 尹标平 共享文件 1 个 23:04:00 utf8.zip 下载 | 查看全部 尹标平(122054810) 23:05:17 改造后的程序在共享文件中的uft8.zip,可以在共享区下载 尹标平(122054810) 23:06:31 或者到以下地址下载: http://www.bbossgroups.com/file/download.htm?fileName=utf8.zip 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |