在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值

第一种方法:获取结果String类型
在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。

所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
 
 <input type="checkbox" name="chkName" value="abc">
 <input type="checkbox" name="chkName" value="def">
 <input type="checkbox" name="chkName" value="ghi">


Action 中的代码:
 
 private String chkName;
 //getter()、setter() 方法一定要有
 public String getChkName(){
 	return chkName;
 	}
 public void setChkName(String chkName){
 	this.chkName=chkName;
 	}
 
 public String execute() throws Exception{
         String[] chkValues = this.getChkName().split(", ");
 }


最后,chValues 数组就是被选中的 checkbox 中的 value。

有一点需要注意:chkName 中的每一个值都是这种形式:[value1, value2, value3, ...] 注意,每个逗号后面都有一个空格,所以是这样的: split(",空格")
别落下逗号后面的空格。

第二种方法:获取结果为String[]数组类型

在 Action 中获得的是一个 String[]数组型数据,每一个被选中的 checkbox 的 value是数组的一个值。

所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。

以下是实现的代码:
前台 HTML 代码:
<input type="checkbox" name="chkName" value="abc">
 <input type="checkbox" name="chkName" value="def">
 <input type="checkbox" name="chkName" value="ghi">


Action 中的代码:

private String[] chkName;
 //getter()、setter() 方法一定要有
 public String[] getChkName(){
 	return chkName;
 	}
 public void setChkName(String[] chkName){
 	this.chkName=chkName;
 	}
 
 public String execute() throws Exception{
         for(int i=0;i<this.getChkName().length;i++){
         		String chkNameValue=this.getChkName()[i];
         }
 }


第三种方法:获取结果为List类型

在 Action 中获得的是一个 List数据,每一个被选中的 checkbox 的 value是List的一个对象。

所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。

以下是实现的代码:
前台 HTML 代码:
<input type="checkbox" name="chkName" value="abc">
 <input type="checkbox" name="chkName" value="def">
 <input type="checkbox" name="chkName" value="ghi">


Action 中的代码:
 private List<String> chkName;
 //getter()、setter() 方法一定要有
 public List<String> getChkName(){
 	return chkName;
 	}
 public void setChkName(List<String> chkName){
 	this.chkName=chkName;
 	}
 
 public String execute() throws Exception{
         for(int i=0;i<this.getChkName().size();i++){
         		String chkNameValue=this.getChkName().get(i);
         }
 }
 

猜你喜欢

转载自lhbthanks.iteye.com/blog/2102193
今日推荐