使用SpringMVC参数绑定总结:
一 ,我们可以对基本数据类型的绑定,
在springmvc中,接收页面提交的数据是通过方法形参来接收的。从客户端请求的key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上,然后就可以在controller中使用该参数了
但是要注意:
方法形参中的参数名要和页面表单上里面传进来的名一样,才能完成参数的绑定。
若不一样,我们可以使用@RequestParam(“userid”) Integer id注解标明传进来参数的名称,完成参数的绑定。
@RequestParam的参数
–value:参数名字,即入参的请求参数名字,
如 value=“item_id”表示请求的参数中的名字为item_id的 参数的值将传入;
–required:是否必须,默认是true,表示请求中一定要有 相应的参数,否则将报 –
defaultValue:默认值,表示如果请求中没有同名参数时 的默认值
如果表单数据提交没有给值,那么会报400错误,为了避免这种错误,我们可以使用封装类型,即使不传值,也不会报400错误,因为参数允许为null
二、pojo类型的绑定(POJO(Plain Ordinary Java Object)是简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。)
页面上的各种类型的属性,封装在一个pojo上,通过传入pojo来获取里面各种类型的属性
使用参数绑定自动接收User类中的集合属性的数据
在pojo里面可以定义一个List集合 页面可以通过获取name里面的值为pojo【0】.属性
https://blog.csdn.net/feli520ljf/article/details/79301407
这个也是要注意,前台页面传进来的name要和要封装的pojo属性名一模一样,然后就可以将该pojo作为形参放到controller的方法中.
三,springMVC参数绑定默认支持的五种类型
–HttpServletRequest •通过request对象获取请求信息 –HttpServletResponse
•通过response处理响应信息 –HttpSession •通过session对象得到session中存放的对象
–Model/ModelMap •ModelMap是Model接口的实现类,将model数据填充到 request域,向页面传递数据
问题:为啥要在方法的形参上面声明这五种类型
*1.request: 获取客户端请求的各类信息,比如:url,ip,请求方式,还有请求参数,还有可以给未来跳转页面传递数据
*2.response:设置响应类型,可以导出报表,可以生成验证码,可以返回json格式数据,还可以写COOKIE等等
*3.model:model.addAttribute(“testmodel”, “往testmodel中放的数据”);
*4.modelMap:modelmap是model的子类:子类一定扩展父类的功能 ,modelmap.addAttribute(“testmodelmap”, “往testmodelmap中放的数据”);
*5.session:用于对会话级别的数据进行读写
问题:Spring-mvc中Controller中的方法的参数为什么用Model不用request
传request,或者ModelMap也可以,没什么本质区别,尽量不要使用javaweb源码,多使用springmvc框架里面的封装好的model,减低耦合程度
减少侵入性,更符合MVC的的设计思想