jsp代码
<form action="reg1.action" method="post">
username:<input name="username" ><br>
<input type="submit" value="sbumit">
</form>
controller层代码:
1、文本框name值与参数名字相同时:自动绑定文本框的值
@RequestMapping("/reg1.action")
public String reg1(String username) {
System.out.println(username);
return "result";
}
2、文本框name与参数名字不同时:使用注解绑定
@RequestMapping("/reg2.action")
public String reg2(@RequestParam(value="username")String name) {
System.out.println(name);
return "result";
}
3、参数名与类属性名一致,参数值作为对象属性值,直接绑定为对象
public class User {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public User() {
super();
}
@Override
public String toString() {
return "User [username=" + username + "]";
}
}
@RequestMapping("/reg3.action")
public String reg3(User user) {
System.out.println(user);
return "result";
}
文本框中的值会直接绑定为User对象的username属性值
4、对象中含有对象属性时
例:
public class UserVO {
private String id;
private User user;
private List<User> list;
private Map<String,User>map;
public Map<String, User> getMap() {
return map;
}
public void setMap(Map<String, User> map) {
this.map = map;
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public UserVO() {
super();
}
@Override
public String toString() {
return "UserVO [id=" + id + ", user=" + user + ", list=" + list + ", map=" + map + "]";
}
}
jsp代码修改为:
<form action="reg6.action" method="post">
id:<input name="id" ><br>
<!-- vo的另一个属性user,参数名为user.username -->
username:<input name="user.username" ><br>
<input type="submit" value="sbumit">
</form>
@RequestMapping("/reg4.action")
public String reg4(UserVO userVO) {
System.out.println(userVO);
return "result";
}
即可绑定为UserVO对象
5、参数为数组
例:
<form action="reg6.action" method="post">
复选框:<input name="interests" type="checkbox" value="1" />1
<input name="interests" type="checkbox" value="2" />2
<input name="interests" type="checkbox" value="3" />3
<br>
<input type="submit" value="sbumit">
</form>
@RequestMapping("/reg5.action")
public String reg5(Integer[] interests) {
System.out.println(interests.length);
return "result";
}
6、参数为List
例:
<form action="reg6.action" method="post">
username:<input name="list[0].username" ><br>
<input type="submit" value="sbumit">
</form>
@RequestMapping("/reg6.action")
public String reg6(UserVO userVO) {
System.out.println(userVO);
return "result";
}
7、参数为Map
例:
<form action="reg6.action" method="post">
username:<input name="map['user1'].username" ><br>
username:<input name="map['user2'].username" ><br>
username:<input name="map['user3'].username" ><br>
<input type="submit" value="sbumit">
</form>
@RequestMapping("/reg6.action")
public String reg6(UserVO userVO) {
System.out.println(userVO);
return "result";
}