版权声明:大家好,我是笨笨,笨笨的笨,笨笨的笨,转载请注明出处,谢谢! https://blog.csdn.net/jx520/article/details/87628520
Spring MVC 学习笔记 3《返回JSON、XML》
@ResponseBody 不走视图,直接返回数据
通常用来返回 JSON,XML 等。具体看前端请求啥类型。
- 可以配置消息转换器自定义
JSON
和XML
处理工具
默认 @ResponseBody
返回 JSON
需要手工添加依赖
<!-- JSON 转换 : Spring MVC 用 @ResponseBody 返回 JSON 需要此依赖 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- jackson-core 可以不写 jackson-databind 依赖 jackson-core,Maven 会自动取它 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.8</version>
</dependency>
@RequestMapping(value="/json", produces={"application/json; charset=UTF-8"})
@ResponseBody
public Map<String, Object> demo7() {
System.out.println("返回json");
Map<String , Object> map = new HashMap<String ,Object>();
map.put("name", "笨笨");
map.put("age", "18");
return map;
}
默认 @ResponseBody
返回 XML
需要手工添加依赖
<!-- XML 转换 : Spring MVC 用 @ResponseBody 返回 XML 需要此依赖-->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>${jackson.version}</version>
</dependency>
@RequestMapping(value="/xml", produces={"application/xml; charset=UTF-8"})
@ResponseBody
public Map<String, Object> demo8() {
System.out.println("返回xml");
Map<String , Object> map = new HashMap<String ,Object>();
map.put("name", "笨笨笨笨");
map.put("age", "888");
return map;
}
上面返回JSON的代码就 相当于 response.getWriter().write(json);
http://localhost/jsonDemo
@RequestMapping(value="/jsonDemo", produces={"application/json; charset=UTF-8"})
@ResponseBody
public void jsonDemo(HttpServletResponse response) {
System.out.println("返回json");
Map<String , Object> map = new HashMap<String ,Object>();
map.put("name", "笨笨");
map.put("age", "18");
try {
String json = new ObjectMapper().writeValueAsString(map);
response.getWriter().write(json);
} catch (IOException e) {
e.printStackTrace();
}
}