引起乱码原因为spring mvc使用的默认处理字符串编码为ISO-8859-1,具体参考org.springframework.http.converter.StringHttpMessageConverter类中public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");
- 第一种方法:
对于需要返回字符串的方法添加注解,如下:
/*** * 返回类型是string需要用produces进行转码,并格式化 * json格式化 可以用Gson处理(obj <-> json)互相转换 * @return * @date 2017年5月12日 * @author wanwenjun */ @RequestMapping(value="/stu",produces="application/json; charset=utf-8") @ResponseBody public String getStudent(){ Student s = (Student) SpringContext.getBean("student"); Gson gson = new Gson(); //obj to String String stu = gson.toJson(s); //String to obj Student s2 = gson.fromJson(stu,Student.class); System.out.println(s2.toString()); return stu; }
使用modelandview,需Jackson支持,如下:
/**** * 效果和Map一致,但需要jackson jar包支持 * @date 2017年5月12日 * @author wanwenjun * @return ModelAndView */ @ResponseBody @RequestMapping(value="/student") public ModelAndView getStu(String a){ Student s = (Student) SpringContext.getBean("student"); Map<String, Student> map = new HashMap<>(); map.put("stu", s); return new ModelAndView(new MappingJackson2JsonView(),map); }
上述方法只针对单个调用方法起作用。
两种方式有什么区别呢?
方式一:使用ModelAndView的contentType是"application/json"
方式二:返回String的 contentType是"text/html"
那么如何设置response的content type呢?
使用注解@RequestMapping 中的produces:
- 第二种方法
在配置文件中加入:
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes" value = "text/plain;charset=UTF-8" /> </bean> </mvc:message-converters> </mvc:annotation-driven>
参考:http://stackoverflow.com/questions/3616359/who-sets-response-content-type-in-spring-mvc-responsebody
相关推荐
然而,当返回的字符串中包含中文字符时,如果没有正确设置编码,就可能导致乱码问题。本文将详细介绍如何解决SpringMVC中`@ResponseBody`注解返回中文乱码的问题。 首先,我们可以尝试使用`@RequestMapping`注解的`...
在Spring MVC框架中,开发者经常遇到ResponseBody返回的字符串出现乱码的问题,特别是当字符串中包含中文字符时。这是因为Spring MVC默认使用了StringHttpMessageConverter来处理Response Body中的字符串,而这个...
本文将详细介绍如何解决JSON中的中文乱码问题,并提供几种简单实用的方法来帮助开发者避免这类问题的发生。 #### 一、问题背景与原因分析 在Web开发中,前后端之间传递的数据格式往往采用JSON(JavaScript Object ...
- **JSON 对象绑定**:Spring 支持直接将 JSON 字符串转换为 Java 对象。 ```java @RequestMapping(value = "/ajax", method = RequestMethod.POST) @ResponseBody public String handleAjaxRequest(@RequestBody ...
1. **避免Spring错误加载Spring MVC**:在`getServletMappings()`方法中,返回`"/"`以指定Spring MVC处理所有请求,避免Spring容器错误地加载到Spring MVC之外的配置。 2. **乱码处理**:可以通过自定义Filter来...
如何解决POST请求中文乱码问题,GET的又如何处理呢? - 对于POST请求,可以在web.xml中配置字符编码过滤器,确保所有请求都使用统一的字符编码: ```xml <filter-name>characterEncodingFilter <filter-class>...
当涉及到非英文字符,如中文,时,字符编码问题可能会导致乱码。这是因为Spring MVC默认使用ISO-8859-1字符集,而中文字符不在这个字符集中。 在处理字符编码问题时,有几种常见的解决方案: 1. **不使用`@...
##### 3.4 如何解决POST请求中文乱码问题,GET的又如何处理呢? - **POST请求**:在web.xml中配置过滤器CharacterEncodingFilter来设置字符编码。 - **GET请求**:同样可以通过配置过滤器解决,也可以通过修改Tomcat...
Jackson是Spring框架中常用来处理HTTP响应体,特别是当使用`@ResponseBody`注解时,它可以将Java对象转换成JSON格式的字符串,直接返回给客户端。 在描述中提到了`@ResponseBody`注解,这是Spring MVC框架的一部分...
在Spring MVC中,开发Web应用时,经常需要处理XML和JSON这两种常见...避免一些错误尝试,如直接返回XML字符串或未序列化的对象,这可能会导致乱码或解析问题。通过合理的配置和优化,可以提高数据交换的效率和正确性。
然而,在使用SpringMVC时,可能会遇到乱码问题,例如在使用@ResponseBody注解时返回的数据出现乱码。在本文中,我们将讨论解决SpringMVC乱码问题的两种方法。 方法一:配置AnnotationMethodHandlerAdapter 在...
在本主题中,我们将深入探讨如何使用Flex进行文件上传和下载,并解决过程中可能出现的中文乱码问题。 一、Flex文件上传 1. Flex组件:Flex中可以使用`FileReference`组件来实现文件上传。用户通过选择文件后,`...
为了解决这一问题,示例中根据请求头中的User-Agent字符串来判断客户端是否为IE浏览器。如果是IE浏览器,需要对文件名进行URL编码,并且将空格替换为%20,以确保文件名的正确显示。 此外,示例还展示了如何在控制器...
在开发Web应用时,Spring MVC和Ajax的交互过程中,经常遇到中文乱码的问题。这个问题主要出现在数据从服务器传输到客户端的过程中,由于编码设置不正确,导致中文字符无法正常显示。以下将详细介绍四种解决Spring ...
该注解使得Spring MVC框架会将返回的对象自动转换为JSON格式的字符串。然而,默认情况下,Spring框架使用的字符编码可能是ISO-8859-1,而开发者在项目的编码实际上是使用了UTF-8。这就导致了字符编码不一致的问题,...
由于有`@ResponseBody`注解,Spring MVC会自动将返回的字符串转换成JSON格式。 如果你需要返回一个Java对象,比如`User`,只需改变方法的返回类型: ```java @RequestMapping("Ajax2") @ResponseBody public User ...
在旧版本的Spring中,可能会需要手动调用Gson的API来返回JSON字符串,但在新版本的Spring中,通过引入依赖和配置自动转换器,可以更为便捷地完成这一过程。 关于乱码问题,由于HTTP协议默认的字符编码为ISO-8859-1...
为了解决中文乱码问题,需要在读写文件或响应时正确设置字符编码,例如设置UTF-8编码,确保文件名和内容在传输过程中不发生乱码。 2. **NEW和SPRING模式**: "NEW"模式可能指的是直接通过`new`关键字实例化对象,...
本文将深入探讨两种解决SpringMvc后台接收JSON数据中文乱码问题的方法。 1. **使用Ajax传输数据** 当前端通过Ajax使用JSON格式向SpringMvc后台发送数据时,可能出现中文乱码。这通常是因为服务器默认的字符编码不...
3. 文件上传:SpringMVC 支持传统方式和跨服务器方式的文件上传,需要配置 Filter 解决中文乱码问题,并考虑 Tomcat 对某些操作的限制。 4. 异常处理:通过 @ExceptionHandler 注解定义全局异常处理器,实现统一的...