SpringMVC源码(十一)请求参数绑定和获取
来源:互联网 发布:js foreach 编辑:程序博客网 时间:2024/05/22 03:41
获取页面请求的参数,是JavaWEB必不可少的一个环节,在Struts中,是通过在Action中定义属性,或者Model的方式来进行数据绑定和获取。需要提供setter或getter方法,略显麻烦。而在SpringMVC中,却可以非常方便的获取请求参数,只需要在对应方法的参数列表中定义出来,即可获取,所见即所得!
获取servlet内置对象
在Struts中是通过特点API获取,或者是接口注入的方式。
来看SpringMVC中如何获取呢?
定义页面:
访问结果:
获取Servlet内置对象的这种方式我们不推荐使用。因为SpringMVC有更好的方式来获取请求参数。
获取PathVariable参数
注意:参数类型必须匹配,否则会出错
获取基本数据类型请求参数
在SpringMVC中,要获取表单中的各种数据,可以通过@RequestParam注解的方式
例如,有一个页面:
<formaction="/test/show14.do"method="post"><table><tr><td>姓名:</td><td><inputname="name"value="liuyan"/></td></tr><tr><td>年龄:</td><td><inputname="age"value="20"/></td></tr><tr><td>收入:</td><td><inputname="income"value="100000"/></td></tr><tr><td>结婚:</td><td><inputtype="radio"name="isMarried"value="true"checked="checked"/>是<inputtype="radio"name="isMarried"value="false"/>否</td></tr><tr><td>兴趣:</td><td><inputtype="checkbox"name="interests"value="shopping"checked="checked"/>购物<inputtype="checkbox"name="interests"value="sport"checked="checked"/>运动<inputtype="checkbox"name="interests"value="movie"checked="checked"/>看电影</td></tr><tr><tdcolspan="2"><inputtype="submit"value="提交表单"/></td></tr></table></form>
提交的数据包含了各种基本数据类型,我们可以这样接收:
注意:类似interests这种多个值的数据,可以用数组或者是List来接收都行
访问表单页面:
提交表单:
RequestParam的更多用法
1)默认情况:
因为默认required为true,所以访问时,如果没有name参数肯定报错:
2)设置required为false,并且给定一个默认值
访问时没有传递参数,但是没有报错,并且得到了默认值:二狗
获取请求参数并封装为POJO对象
我们发现一个一个获取参数非常麻烦,能不能直接把整个表单中的数据封装为对象呢?
定义Controller,只需要在参数中写上要封装的对象即可:
提交表单,访问:
获取cookie值
传统的Servlet获取Cookie的方式非常的麻烦,需要用到request,然后获取cookie数组。逐个遍历
SpringMVC中依然是通过注解加参数注入的方式:
访问:
接收对象List集合
表单中,还有这样一种写法:上面的表单相当于同时提交三个用户,也就是用户的集合。要注意的是,我们在Controller中,不能直接接收一个User的List集合
\
正确的方式是,定义一个对象,在对象中定义一个List<User>的属性:
然后在Controller中接收这个对象,而不是Use集合
最后访问:
接收JSON格式请求
SpringMVC还可以接收JSON数据,并且把JSON字符串转为POJO对象
这个时候,就要用到@RequestBody注解。
所以:
@ResponseBody 是把返回值的Pojo对象变为JSON字符串,称为序列化
@RequestBody 是把接收到的JSON字符串变为Pojo对象,称为反序列化
接收单个User对象
定义Controller:接收一个User对象
使用RestClient来模拟发送JSON数据:
结果:
接收JSON的数组
定义Controller,可以直接接收List<User>
模拟发送JSON数据:
结果:
- SpringMVC源码(十一)请求参数绑定和获取
- springMVC请求参数绑定
- springmvc请求参数绑定
- SpringMVC获取请求参数
- SpringMVC映射请求参数的方式(参数绑定方式)
- SpringMVC参数绑定(从请求中接受参数)
- SpringMVC请求参数的获取
- springMVC(4)------RequestParam注解绑定请求参数
- springMVC(6)------POJO绑定请求参数
- 《SpringMvc》----请求参数的绑定1
- springMVC 过滤器获取bean 和 multipart/form-data请求参数
- springmvc请求参数获取的几种方法(转载)
- springmvc请求路径和请求参数的获取注解- @PathVariable和@RequestParam
- springmvc请求路径和请求参数的获取注解- @PathVariable和@RequestParam
- springmvc参数绑定(二)
- springmvc(九) 参数绑定
- springmvc(3)----参数绑定
- SpringMVC获取http请求中的参数
- JS 一些知识点补漏
- 收录的各种文章,留着备用
- (OK) MIMP
- servlet实现原理
- ELK5.2+kafka+zookeeper+filebeat集群部署
- SpringMVC源码(十一)请求参数绑定和获取
- Mybatis用xml文件映射的增删查改
- 2017 计蒜客初赛 阿里天池的新任务(KMP算法)
- sublime 插件收集
- Linux系统发布java系统缓存过大启动Tomcat报错解决办法
- nodejs 学习
- Android从零开始20170712
- 移动游戏风格
- Hyperledger Fabric 1.0发布:基于区块链的开源分布式账本