SpringMVC中的参数绑定

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";
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值