`

spring requestMapping charset

    博客分类:
  • Web
阅读更多

 

        在使用springMVC框架构建web应用,客户端常会请求字符串、整型、json等格式的数据,通常使用@ResponseBody注解使controller回应相应的数据而不是去渲染某个页面。如果请求的是非英文格式的字符串,往往在客户端显示的是乱码。原因是spring的StringHttpMessageConverter默认的字符类型是iso8895-1  ‘西欧语言’,不支持中文等字符,具体的框架内部流程不作介绍。

这里总结几种解决方案:

1.不使用@ResponseBody注解,使用HttpServeletResponse设置contentType属性

 

@RequestMapping(value ="/rest/create/document")

public void create(Document document, HttpServletRespone respone){

                 repoonse.setContentType("text/plain;charset='utf-8'");

                 response.write(“中文string”);

      }

 

2.返回Response Entity object,设置contentType,例:

@RequestMapping(value = "/rest/create/document")
public ResponseEntity<String> create(Document document, HttpServletRespone respone) 

   HttpHeaders responseHeaders = new HttpHeaders();
	
	responseHeaders.add("Content-Type", "text/html; charset=utf-8");

	Document newDocument = DocumentService.create(Document);
	
	String json = jsonSerializer.serialize(newDocument);

	return new ResponseEntity<String>(json, responseHeaders, HttpStatus.OK);
}

 

3.使用produces属性:

@RequestMapping(value = "/rest/create/document",produces= "text/plain;charset=UTF-8")
@ResponseBody
public String create(Document document, HttpServletRespone respone) throws UnsupportedEncodingException {
	
	Document newDocument = DocumentService.create(Document);
	
	return jsonSerializer.serialize(newDocument);
}
0
3
分享到:
评论

相关推荐

    详解获取Spring MVC中所有RequestMapping以及对应方法和参数

    "详解获取Spring MVC中所有RequestMapping以及对应方法和参数" Spring MVC是一个基于模型-视图-控制器(MVC)模式的Web应用程序框架, RequestMapping是一个重要的注解,它可以将HTTP请求映射到控制器的方法上。在...

    Spring MVC温故而知新系列教程之请求映射RequestMapping注解

    【Spring MVC 请求映射(RequestMapping)注解详解】 在Spring MVC框架中,`@RequestMapping`注解是核心组件之一,它负责将HTTP请求与控制器类的处理方法进行映射,从而实现请求分发。该注解可以应用于类级别和方法...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

    spring3.0 mvc 注解实现helloworld输出

    import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloController { @RequestMapping("/hello") @...

    spring+freemark整合工程

    3. **控制器处理**: 创建一个Spring MVC Controller类,使用`@RequestMapping`注解处理HTTP请求,并返回一个模型视图名。例如: ```java @Controller public class HelloController { @RequestMapping("/hello")...

    spring MVC数据绑定大全

    如上面源码所示,Spring 自带了一系列默认的`PropertyEditor`实现,支持诸如`CharSet`、`Class`、`Locale`等类型。如果需要自定义转换,可以通过实现`org.springframework.core.convert.converter.Converter`接口或...

    spring mvc maven mysql 增删改查

    7. **处理乱码问题**:为了防止乱码,需要在Controller中设置字符编码,例如,`@RequestMapping(value = "/save", method = RequestMethod.POST, consumes = "application/x-www-form-urlencoded; charset=UTF-8")`...

    spring注解出现中文乱码

    1. **Spring框架使用注解处理JSON数据**:这通常涉及到`@RestController`或`@Controller`配合`@RequestMapping`等注解的使用。 2. **中文乱码问题**:当客户端发送包含中文字符的数据时,服务器端收到的数据中中文...

    Spring实现中英文输出hello

    控制器通常是一个带有@RequestMapping注解的方法,该方法会接收请求并返回响应。 ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation....

    Spring Velocity简单的一个例子(转)

    charset=UTF-8"/&gt; ``` 在这个配置中,`resourceLoaderPath`指定了Velocity模板文件的存放位置,`suffix`是模板文件的扩展名,`contentType`设置响应的MIME类型和字符编码。 创建Velocity模板文件(例如:`/WEB-...

    Spring—mvc实例

    import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloController { private String message; ...

    Spring3.1整合FreeMarker2.3.19

    charset=UTF-8"/&gt; ``` **4. FreeMarker模板语言** FreeMarker模板语言(FTL)是一种简单的声明式语言,用于描述如何动态地生成文本。例如,你可以使用`&lt;#if&gt;`、`&lt;#foreach&gt;`等指令进行条件判断和循环,`${}`用来...

    Spring MVC Helloworld实例

    charset=UTF-8" language="java" %&gt; &lt;title&gt;Hello, Spring MVC ${message} ``` 4. **配置Spring MVC上下文**:在Spring的配置文件(如`servlet-context.xml`)中,我们需要配置视图解析器和其他可能的bean...

    简单的 Eclipse环境下搭建spring的范例

    import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @...

    搭建一个简单的Spring MVC项目

    import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping("/") public String hello(Model model) { model.addAttribute("message", ...

    Spring boot连接oracle,并显示数据到页面,并且实现可以打包war发布到tomcat

    @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping public ResponseEntity&lt;List&lt;User&gt;&gt; getUsers() { List&lt;User&gt; users = userService.get...

    用Spring MVC 搭建JSON 数据服务器(二)

    import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; public class ...

    Spring之MVC 入门实例

    这里的 `@Controller` 注解标记该类为 Spring MVC 的控制器,`@RequestMapping` 注解定义了一个请求映射,当访问 `/hello` 路径时,会调用 `hello()` 方法。 ### 五、创建视图 在 `src/main/webapp/WEB-INF/views`...

    spring MVC3 集成 freemarker

    @RequestMapping(value = "/example", method = RequestMethod.GET) public ModelAndView examplePage() { ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("message", "Hello, World!")...

Global site tag (gtag.js) - Google Analytics