springmvc请求参数绑定

来源:互联网 发布:php工程师待遇2016 编辑:程序博客网 时间:2024/05/01 08:08

1.默认绑定的参数:

HttpServletRequest

通过request对象获取请求信息

HttpServletResponse

通过response处理响应信息

HttpSession

通过session对象得到session中存放的对象

Model

通过model向页面传递数据,如下: 

model.addAttribute("user",new User("李四"));

model也可以通过modelMapmap将数据传到页面。

2.表单对象-简单类型

默认支持:String,int,double等简单类型,但对于Date类型的参数,要注册属性编辑器。

建议使用包装类型,这样可以使用空值。

使用方法,可以直接在形参上定义,也可以通过属性来传递简单类型。

3.pojo对象

1)表单中使用pojo的属性名来传递。

比如表单中某个input type="text" name="age" 中值就可以传递到一个pojo中,只要这个pojo含有age这个属性。

这样会引发一个问题,当你形参中有两个pojo,每一个都有age这个属性时,会给两个pojo都赋值,但这造成矛盾没有意义。

2)使用pojo.属性名传递。

若是你只打算给Student类对象传递值,方法形参为 student , 则表单中name="student.age",这样只会给Student对象赋值,更为直观。

这里只能使用包装对象来接受参数。


4.绑定字符串数组

需求:一个复选框,然后提交表单,如何把所有已经勾选的复选框这个参数绑定在形参上。

形参为一个字符串数组,数组名和复选框的name值一样,然后就把所有选中的选项传入形参中。

5.绑定List

页面向action传递复杂的批量数据,比如学生的成绩信息(课程名称,成绩)



复杂类型一般都需要使用包装对象,需要把表单中的name,封装到包装对象的属性中。

6. @RequestParam绑定单个请求参数

value参数名字,即入参的请求参数名字,如value=“studentid表示请求的参数区中的名字为studentid的参数的值将传入;

required是否必须,默认是true,表示请求中一定要有相应的参数,否则将报400错误码;

defaultValue默认值,表示如果请求中没有同名参数时的默认值


这是为了确保方法的健壮性。




0 0