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

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

所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。 
以下是实现的代码: 
前台 HTML 代码: 
Html代码  在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
  1. <input type="checkbox" name="chkName" value="abc">  
  2. <input type="checkbox" name="chkName" value="def">  
  3. <input type="checkbox" name="chkName" value="ghi">  


Action 中的代码: 
Java代码  在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
  1. private String chkName;  
  2. //getter()、setter() 方法一定要有  
  3. public String getChkName(){  
  4.     return chkName;  
  5.     }  
  6. public void setChkName(String chkName){  
  7.     this.chkName=chkName;  
  8.     }  
  9.   
  10. public String execute() throws Exception{  
  11.         String[] chkValues = this.getChkName().split(", ");  
  12. }  


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

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

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

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

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

以下是实现的代码: 
前台 HTML 代码: 
Html代码  在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
  1. <input type="checkbox" name="chkName" value="abc">  
  2.  <input type="checkbox" name="chkName" value="def">  
  3.  <input type="checkbox" name="chkName" value="ghi">  


Action 中的代码: 

Java代码  在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
  1. private String[] chkName;  
  2.  //getter()、setter() 方法一定要有  
  3.  public String[] getChkName(){  
  4.     return chkName;  
  5.     }  
  6.  public void setChkName(String[] chkName){  
  7.     this.chkName=chkName;  
  8.     }  
  9.    
  10.  public String execute() throws Exception{  
  11.          for(int i=0;i<this.getChkName().length;i++){  
  12.                 String chkNameValue=this.getChkName()[i];  
  13.          }  
  14.  }  


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

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

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

以下是实现的代码: 
前台 HTML 代码: 
Html代码  在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
  1. <input type="checkbox" name="chkName" value="abc">  
  2.  <input type="checkbox" name="chkName" value="def">  
  3.  <input type="checkbox" name="chkName" value="ghi">  


Action 中的代码: 
Java代码  在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
  1. private List<String> chkName;  
  2. //getter()、setter() 方法一定要有  
  3. public List<String> getChkName(){  
  4.     return chkName;  
  5.     }  
  6. public void setChkName(List<String> chkName){  
  7.     this.chkName=chkName;  
  8.     }  
  9.   
  10. public String execute() throws Exception{  
  11.         for(int i=0;i<this.getChkName().size();i++){  
  12.                 String chkNameValue=this.getChkName().get(i);  
  13.         }  
  14. }