您现在的位置是:首页 > 文章详情

@Responsebody与@RequestBody

日期:2018-11-29点击:443
  1. 预备知识:@RequestMapping  

  2. RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。  

  3. @RequestMapping(value = "/aaa")//类级别,可以没有  

  4. public class myController {  

  5.     @RequestMapping(value = "/bbb")//方法级别,必须有  

  6.     public String getMyName() {  

  7.         return "myReturn";  

  8.     }  

  9. }  

  10. 对应的action就是:<form action="aaa/bbb">  

  11. 返回页面就是myReturn.jsp  

  12.   

  13. @Responsebody@RequestBody  

  14. @Responsebody表示该方法的返回结果直接写入HTTP response body中  

  15. 一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,  

  16. 加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。  

  17. 比如异步获取json数据,加上@Responsebody后,会直接返回json数据。  

  18. @RequestBody将HTTP请求正文插入方法中,使用适合的HttpMessageConverter将请求体写入某个对象。  

  19. function login() {//页面异步请求  

  20.     var mydata = '{"name":"' + $('#name').val() + '","id":"'  

  21.             + $('#id').val() + '","status":"' + $('#status').val() + '"}';  

  22.     $.ajax({  

  23.         type : 'POST',  

  24.         contentType : 'application/json',  

  25.         url : "${pageContext.request.contextPath}/person/login",  

  26.         processData : false,  

  27.         dataType : 'json',  

  28.         data : mydata,  

  29.         success : function(data) {  

  30.             alert("id: " + data.id + "\nname: " + data.name + "\nstatus: "  

  31.                     + data.status);  

  32.         },  

  33.         error : function() {  

  34.             alert('出错了!');  

  35.         }  

  36.     });  

  37. };  

  38.     @RequestMapping(value = "person/login")  

  39.     @ResponseBody  

  40.     public Person login(@RequestBody Person person) {//将请求中的mydata写入Person对象中  

  41.         return person;//不会被解析为跳转路径,而是直接写入HTTP response body中  

  42.     }  

  43.   

  44. 扩展:@PathVariable获取请求路径变量  

  45. function profile() {  

  46.     var url = "${pageContext.request.contextPath}/person/profile/";  

  47.     var query = $('#id').val() + '/' + $('#name').val() + '/'  

  48.             + $('#status').val();  

  49.     url += query;  

  50.     $.get(url, function(data) {  

  51.         alert("id: " + data.id + "\nname: " + data.name + "\nstatus: "  

  52.                 + data.status);  

  53.     });  

  54. }  

  55.     @RequestMapping(value = "person/profile/{id}/{name}/{status}")  

  56.     @ResponseBody  

  57.     public Person porfile(@PathVariable int id,@PathVariable String name,@PathVariable boolean status) {  

  58.         return new Person(id, name, status);  

  59.     }  

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


原文链接:https://blog.roncoo.com/article/127627
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章