struts2的checkbox传递布尔值出错的问题

struts2的checkbox传值问题。

 

要通过action传递checkbox的布尔值时(是布尔值,单个的checkbox,表示此框是否被选中的布尔值),后台Action用一个布尔型变量接收。

在用html的标准checkbox时,传值传的非常纠结,无论前台的checkbox是否被选中,在后台接收到的值总都是true……抓狂

 

最后找到的解决办法是:用struts的标签<s:checkbox>来代替标准的<checkbox>

[html]  view plain copy print ?
  1. <!--  
  2.         <input type="checkbox" name="isImageNews" id="isImageNews" >  
  3.         加入到图片新闻  
[html]  view plain copy print ?
  1. -->  
  2.             <s:checkbox name="isImageNews" id="isImageNews" >加入到图片新闻</s:checkbox>  
  3.                

<s:checkbox>传递的值总是布尔值。

*****************************************************************************************************

 

另外,还有要注意的一件事,在用eclipse自动生成set和get函数时,它对布尔型字段所生成的函数可能是不符合struts2 Action的规则的

比如对于字段 boolean isGood,它生成的函数是:

[java]  view plain copy print ?
  1.    //get  
  2. public boolean isGood() {  
  3.     return isGood;  
  4. }  
  5. //set  
  6. public void setGood(boolean isGood) {  
  7.     this.isGood = isGood;  
  8. }  
  9.      
  10.      

而struts2要求的样子是:

[java]  view plain copy print ?
  1.    //get  
  2. public boolean getIsGood() {  
  3.     return isGood;  
  4. }  
  5. //set  
  6. public void setIsGood(boolean isGood) {  
  7.     this.isGood = isGood;  
  8. }  
  9.      

只有这样子才能被它自动识别。

 

我由于没注意到这点,导致郁闷了很久。

戒之后人!

出处:http://blog.csdn.net/barryhappy/article/details/7021648

 

你可能感兴趣的:(checkbox)