
请求参数的绑定说明
绑定机制
表单提交的数据都是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条)