您的位置:首页 > 编程语言 > Java开发

数据传递-------ajaxJson------spring3mvc中使用ajax传json中文乱码解决

2017-05-27 14:03 671 查看
参考来源:http://blog.csdn.net/dangerous_fire/article/details/25904225

第一种解决方法,适用所有情况

因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为utf-8,所以传中文会出现乱码,解决办法是不用注解,直接用response,转换编码。

[java] view plain copy

@RequestMapping("/modifyconfiginput")

@ResponseBody

public String modifyinput( @RequestParam(value="id") String id,

@RequestParam(value="timestamp") String timestamp,

HttpServletResponse response ) throws Exception {

ImmediateConfig ic = this.immediatePictureService.findImmediateConfig(id);

String json = "["+"{name:'"+ic.getName()+"',classId:'"+ic.getProductClass().getClassId()+"',pyFile:'"+ic.getPyFile()+"'}]";

System.out.println("json:"+json);

//return json;

// 设置response的ContentType解决中文乱码

response.setContentType("text/html;charset=UTF-8");

response.getWriter().print(json);

return null;

}

第二种解决方法,可用于新版本的spring

[java] view plain copy

@RequestMapping(value="/ajaxCounterList", produces = "application/json; charset=utf-8")

注意:在IE浏览器中必须声明返回的类型,如下

@RequestMapping(value="/upload/upload",produces="text/html;charset=UTF-8")

或者用第一种方法,但也要声明为 text/html 类型,否则IE无法识别,会报错误



[plain] view plain copy

Servlet.service() for servlet springMVC threw exception

java.lang.IllegalStateException: <span style="color:#FF0000;">Current request is not of type</span> [org.springframework.web.multipart.MultipartHttpServletRequest]: org.apache.catalina.connector.RequestFacade@58fbd53e
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐