您的位置:首页 > 编程语言 > Java开发

@ResponseBody

2015-10-30 09:48 495 查看


@ResponseBody


作用: 

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

使用时机:

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

@Controller  

public class PersonController {  

  

    /** 

     * 查询个人信息 

     *  

     * @param id 

     * @return 

     */  

    @RequestMapping(value = "/person/profile/{id}/{name}/{status}", method = RequestMethod.GET)  

    public @ResponseBody  

    Person porfile(@PathVariable int id, @PathVariable String name,  

            @PathVariable boolean status) {  

        return new Person(id, name, status);  

    }  

  

    /** 

     * 登录 

     *  

     * @param person 

     * @return 

     */  

    @RequestMapping(value = "/person/login", method = RequestMethod.POST)  

    public @ResponseBody  

    Person login(@RequestBody Person person) {  

        return person;  

    }  

}  
备注:@RequestMapping(value = "/person/profile/{id}/{name}/{status}",
method = RequestMethod.GET)中的{id}/{name}/{status}与@PathVariable
int id, @PathVariable String name,@PathVariable boolean status一一对应,按名匹配。

 这是restful式风格。 
如果映射名称有所不一,可以参考如下方式: 

@RequestMapping(value = "/person/profile/{id}", method = RequestMethod.GET)  

public @ResponseBody  

Person porfile(@PathVariable("id") int uid) {  

    return new Person(uid, name, status);  

}  
GET模式下,这里使用了@PathVariable绑定输入参数,非常适合Restful风格。因为隐藏了参数与路径的关系,可以提升网站的安全性,静态化页面,降低恶意攻击风险。


POST模式下,使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。
@ResponseBody可以标注任何对象,由Srping完成对象——协议的转换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc