请求参数的绑定说明
绑定机制
表单提交的数据都是k=v格式的 username=haha&password=123
SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的
要求:提交表单的name和参数的名称是相同的
我们可以新建一个UserController,然后在UserController中添加相关测试方法。
@Controller @RequestMapping(value = "/user") public class UserController { }基本数据类型和字符串类型
新建一个addUser方法,代码如下
@RequestMapping(value = "/parameter/add") public String addUser(int id,String name){ System.out.println("ID:"+id+",NAME:"+name); return "success"; }实体类型(JavaBean)
我们使用SpringMVC还可以接受一个JavaBean对象。
(1)创建User实体Bean
package com.sen.bean; import java.io.Serializable; public class User implements Serializable { private String name; private Integer age; public User() { } public User(String name, Integer age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User{" + "name='" + name + ''' + ", age=" + age + '}'; } }
(2)在UserController类中添加addUser方法,代码如下:
@RequestMapping(value = "/add") public String addUser(User user){ System.out.println("AGE:"+user.getAge()+",NAME:"+user.getName()); return "success"; }
(3)在index.jsp中加入如下表单
以上测试可以通过表单接收到对象
集合数据类型(Map、List) 接收Map类型(1)在上面案例中,添加addUser方法,注意需要加上一个注解@RequestParam来接收Map数据,代码如下:
@RequestMapping(value = "/map/add") public String addUser(@RequestParam Map userMap){ System.out.println(userMap); return "success"; }
(2)在index.jsp中添加如下表单:
(3)测试
可以输入http://localhost:8080/index.jsp填写数据测试
测试可以从后台接收到数据
接收List类型(1)在上面案例中,添加addUser方法,注意需要加上一个注解@RequestParam来接收List数据,代码如下:
@RequestMapping(value = "/list/add") public String addUser(@RequestParam List传入请求参数总结, String name,User user,@RequestParam Map map(Listid){ System.out.println(id); return "success"; }
-
提交表单的name和参数的名称是相同的
-
如果接收JavaBean则必须和JavaBean的属性名相同
-
区分大小写
public class IdCard implements Serializable { //身份z号 private String number; //身份z地址 private String address; }
public class User implements Serializable { private String name; private Integer age; //一对一,一个用户有一个身份z属性 private IdCard idCard;//idCard.number=666 }
(2)修改index.jsp中action="/user/add"对应的表单,代码如下:
取赋值用.来表示
给JavaBean集合属性数据封装idCard.number
如果JavaBean有集合属性,JSP页面编写方式:list[0].属性
我们在上面案例基础上添加一个Mobile对象,再在User中添加一个集合属性List
只需修改:
//一对多,比如一个用户拥有多部手机,即手机集合 private Listmobiles;//mobiles[0].mobileName=huawei
集合的取赋值用
mobiles[0].mobileName=huawei
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)