@ResponseBody

来源:互联网 发布:excel怎么把表一的数据 编辑:程序博客网 时间:2024/05/17 06:51

@ResponseBody

作用: 

      该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:

      返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

  1. @Controller  
  2. public class PersonController {  
  3.   
  4.     /** 
  5.      * 查询个人信息 
  6.      *  
  7.      * @param id 
  8.      * @return 
  9.      */  
  10.     @RequestMapping(value = "/person/profile/{id}/{name}/{status}", method = RequestMethod.GET)  
  11.     public @ResponseBody  
  12.     Person porfile(@PathVariable int id, @PathVariable String name,  
  13.             @PathVariable boolean status) {  
  14.         return new Person(id, name, status);  
  15.     }  
  16.   
  17.     /** 
  18.      * 登录 
  19.      *  
  20.      * @param person 
  21.      * @return 
  22.      */  
  23.     @RequestMapping(value = "/person/login", method = RequestMethod.POST)  
  24.     public @ResponseBody  
  25.     Person login(@RequestBody Person person) {  
  26.         return person;  
  27.     }  
  28. }  
备注:@RequestMapping(value = "/person/profile/{id}/{name}/{status}", method = RequestMethod.GET)中的{id}/{name}/{status}@PathVariable int id, @PathVariable String name,@PathVariable boolean status一一对应,按名匹配。 这是restful式风格。 
如果映射名称有所不一,可以参考如下方式: 

  1. @RequestMapping(value = "/person/profile/{id}", method = RequestMethod.GET)  
  2. public @ResponseBody  
  3. Person porfile(@PathVariable("id"int uid) {  
  4.     return new Person(uid, name, status);  
  5. }  
  • GET模式下,这里使用了@PathVariable绑定输入参数,非常适合Restful风格。因为隐藏了参数与路径的关系,可以提升网站的安全性,静态化页面,降低恶意攻击风险。
  • POST模式下,使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。
  • @ResponseBody可以标注任何对象,由Srping完成对象——协议的转换


0 0
原创粉丝点击