@ResponseBody@RequestParam@PathVariable@RequestBody@ModelAttribute个人理解

  • @ResponseBody:

将返回结果直接写入HTTP response body中,在使用@RequestMapping时,返回值通常被解析为跳转路径,加上@ResponseBody后返回值则不会被解析为跳转路径,而是以json格式写入HTTP response body中响应给客户端;

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


  • @RequestParam

将属性值映射到指定属性上,SpringMVC默认开启@RequestParam功能的,但是为了代码规范和易于理解,最好还是写一下


  • @PathVariable

​​​​​​​​​​​​​​与@RequestParam类似,但是它用于res风格,只是此注解需@RequesMapping中指定模版,不然访问会出现错误


  • @RequestBody

读取Request请求的body数据,使用系统默认配置的HttpMessageConverter进行解析,把相应的数据绑定到HttpMessageConverter要返回的对象上,然后再把HttpMessageConverter返回对象的数据绑定到Controller方法的参数上

使用时机:根据request header Content-Type的值来判断

GET,POST请求时:

application/x-www-form-urlencoded

可选,因为@RequestParam,@RequestBody,@ModelAttribute均可处理

multipart/form-data:@RequestBody不能处理

其它格式(application/json, application/xml等:必须用@RequestBody

PUT请求时:

application/x-www-form-urlencoded:必须用@RequestBody

multipart/form-data:不能处理

其它格式(application/json, application/xml等:必须用@RequestBody


  • @ModelAttribute

可用在方法上,也可用于参数上,大多用于参数上,主要作用是将表单提交的参数绑定到Controller方法的参数上,然后controller返回指定的url(例如:hello.jsp),这时候我们就可以在hello.jsp页面中使用“对象.属性名”获取到刚刚绑定的数据。同@RequestParam一样,SpringMVC默认开启了@ ModelAttribute功能的,但是为了代码规范和易于理解,最好还是写一下

注:“对象.属性名中”,对象一定要为对象类型的小写格式;

例如:要使用{user.name}取值,而不是{users.name}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值