在用复选框(checkbox)向后台传值时经常会遇到name属性相同,value属性不同的情况,
比如说选择我们的爱好:抽烟,喝酒,烫头等...这些value值肯定都是我们的hobbies属性,
那么在后台我们可以利用如下两种属性驱动的方式来接收这些值:
后台页面代码:
<form action="${pageContext.request.contextPath}/demo" method="post">
一:<input type="checkbox" name="ids" value="1"><br>
二:<input type="checkbox" name="ids" value="2"><br>
三:<input type="checkbox" name="ids" value="3"><br>
四:<input type="checkbox" name="ids" value="4"><br>
五:<input type="checkbox" name="ids" value="5"><br>
<input type="submit" value="提交">
</form>
Action中的代码:
方式1: 字符串接收
public class Demo extends ActionSupport{
//属性驱动获得同一个name的checkbox(复选框)传给Action的值
private String ids;
public String getIds() {
return ids;
}
public void setIds(String ids) {
this.ids = ids;
}
public String execute() throws Exception {
System.out.println(ids); //结果为:1, 2, 3, 4, 5
return SUCCESS;
}
注意:这种方式接收到的为一个字符串,中间用逗号和空格隔开所以想获得每个value时
可以通过字符串切割的方法来获取,代码如下,注意逗号后还有一个空格
String[] id = ids.split(", ");
方式2: 直接用字符串数组进行接收
public class Demo2 extends ActionSupport{
//属性驱动获得同一个name的checkbox(复选框)传给Action的值
private String[] ids;
public String[] getIds() {
return ids;
}
public void setIds(String[] ids) {
this.ids = ids;
}
public String execute() throws Exception {
for (String id : ids) {
System.out.print(id); //因为没换行,所以结果为12345
}
return SUCCESS;
}
checkbox向后台传多个name相同的value时的两种属性驱动接收方式
最新推荐文章于 2023-09-26 13:59:48 发布