在springboot整合thymeleaf中,常常会在HTML页面中接收来自服务器的json数据,而后处理json数据并在页面上渲染。那么如何在服务器中返回json类型的数据呢?前端
该注解用于将 Controller 的方法返回的对象,经过 HttpMessageConverter 接口转换为指定格式的spring
数据如:json,xml 等,经过 Response 响应给客户端json
在controller的方法上增长@RespongBodyspringboot
@RequestMapping("/findAll.do")
@ResponseBody
public List<SysCategory> findAll(){ //查询分类信息,具体的service层方法略 List<SysCategory> categoryList = categoryService.findAll(); System.out.println(categoryList); return categoryList; }
Java控制台打印出的结果以下:服务器
接下来是在前端接收服务器返回的json数据app
$.get("/category/findAll.do",{},function (data) {
console.log(data);
},"json");
在页面控制台打印出的结果以下:spa
能够看到 服务器端的返回的确实是json类型的数据3d
@RestController是@ResponseBody和@Controller二者的结合,使用这个注解后就无需再用那两个注解。
@RestController
@RequestMapping("/category") public class CategoryController { @Autowired private CategoryService categoryService; @RequestMapping("/findAll.do") public List<SysCategory> findAll(){ List<SysCategory> categoryList = categoryService.findAll(); System.out.println(categoryList); return categoryList; } }
发送的请求和在controller层的业务逻辑和第一种方法同样。code
在页面控制台打印出的结果以下:xml
String obj = "[SysCategory{id=1, name='JavaSe'}, SysCategory{id=2, name='JavaEE'}, SysCategory{id=3, name='前端'}, SysCategory{id=4, name='其余'}]"
ObjectMapper mapper = new ObjectMapper(); response.setContentType("application/json;charset=utf-8"); mapper.writeValue(response.getOutputStream(),obj);
在页面控制台打印出的结果以下: