在SpringMVC中在Controller层中使用注解
@ResponseBody 返回前台是一个java对象时是不会出现乱码现象的,是因为@ResponseBody的默认行为是将java对象转换成json返回前台,他的请求头为:
如图:
那么当如果我们项目中涉及到跨域或者业务需求 需要手动将java转换成json返回给前台,这时候直接返回就会出现乱码。
如图:
原因:是因为会将字符当成html解析。
除了使用Response在代码中设置请求头外,还可以使用下面两种方式。
解决一:
解决二:(前提条件:springmvc4.1)
使用的是springmvc提供的一个工具类MappingJacksonValue
该类支持jsonp的调用,当涉及到跨域需要返回一个js片段时可以使用:jacksonValue.setJsonpFunction(functionName);