struts2的checkbox傳值問題。
要通過action傳遞checkbox的布爾值時(是布爾值,單個的checkbox,表示此框是否被選中的布爾值),後臺Action用一個布爾型變量接收。
在用html的標準checkbox時,傳值傳的非常糾結,無論前臺的checkbox是否被選中,在後臺接收到的值總都是true……。
最後找到的解決辦法是:用struts的標籤<s:checkbox>來代替標準的<checkbox>
<!--
<input type="checkbox" name="isImageNews" id="isImageNews" >
加入到圖片新聞
-->
<s:checkbox name="isImageNews" id="isImageNews" >加入到圖片新聞</s:checkbox>
<s:checkbox>傳遞的值總是布爾值。
*****************************************************************************************************
另外,還有要注意的一件事,在用eclipse自動生成set和get函數時,它對布爾型字段所生成的函數可能是不符合struts2 Action的規則的。
比如對於字段 boolean isGood,它生成的函數是:
//get
public boolean isGood() {
return isGood;
}
//set
public void setGood(boolean isGood) {
this.isGood = isGood;
}
而struts2要求的樣子是: //get
public boolean getIsGood() {
return isGood;
}
//set
public void setIsGood(boolean isGood) {
this.isGood = isGood;
}
只有這樣子才能被它自動識別。
我由於沒注意到這點,導致鬱悶了很久。
戒之後人!
個人學習記錄……