基本数据类型和字符串类型
(1)提交表单的name和参数的名称是相同的
(2)区分大小写
<a href="param/testParam?username=hky&pwd=123">请求参数绑定</a>
@GetMapping("/testParam")
public String testParam(String username, String pwd) {
System.out.println("执行testParam");
System.out.println("username:" + username);
System.out.println("password:" + pwd);
return "success";
}
实体类型(JavaBean)
(1)提交表单的name和JavaBean中的属性名称需要一致
(2)如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性 例如:address.name
public class User implements Serializable {
private String uname;
private Integer age;
private Date date;
//省略get set tostring 方法
}
<form action="param/saveUser" method="post">
用户姓名:<input type="text" name="uname"/> <br/>
用户密码:<input type="text" name="age"/> <br/>
用户生日:<input type="text" name="date"/> <br/>
<input type="submit" value="提交"/><br/>
</form>
@RequestMapping("/saveUser")
public String saveUser(User user) {
System.out.println("执行saveUser");
System.out.println(user);
return "success";
}
集合属性数据封装
(1)JSP页面编写方式:list[0].属性
(2)JSP页面编写方式:map[‘one’].属性
public class Account implements Serializable {
private String username;
private String password;
private Double money;
private List<User> list;
private Map<String,User> map;
//省略 get set tostring 方法
}
<form action="param/saveAccount" method="post">
姓名:<input type="text" name="username"/> <br/>
密码:<input type="text" name="password"/> <br/>
金额:<input type="text" name="money"/> <br/>
用户姓名:<input type="text" name="list[0].uname"/> <br/>
用户年龄:<input type="text" name="list[0].age"/> <br/>
用户生日:<input type="text" name="list[0].date"/> <br/>
用户姓名:<input type="text" name="map['one'].uname"/> <br/>
用户年龄:<input type="text" name="map['one'].age"/> <br/>
<input type="submit" value="提交"/><br/>
</form>
@RequestMapping("/saveAccount")
public String saveAccount(Account account) {
System.out.println("执行saveAccount");
System.out.println(account);
return "success";
}
运行结果