Struts中如何設定CheckBox為選中狀態

2021-04-17 12:49:21 字數 736 閱讀 7998

1)需求:

當通過選單進入頁面時,頁面中的checkbox處於被選中狀態,頁面提交後forward回本頁,對應的checkbox保持提交時的狀態,也就是說:如果提交時checkbox是選中狀態回來仍然是選中狀態;如果使用者在提交前將checkbox的勾去掉,回來時checkbox應該為為選中狀態。

2)問題:

這個需求看起來很簡單,只需要

1)在對應的form中將checkbox對應的屬性設為true就行了:

private boolean ischecked= true;

2)在對應的jsp中使用html:checkbox標籤就行了

但問題是checkbox標籤不會去set初始化值為true的checkbox屬性,不賦初值時struts預設賦為false;

從網上找資料有人說可以實現actionfrom的reset()方法將對應的屬性值設為false,但reset方法是在form例項化以後被呼叫的,也就是說你初始化的值true將被重置為false,這和直接將屬性值設為false沒有任何區別,這樣做的結果是你從選單進入頁面時checkbox是處於不被選中的狀態。

他們之間存在著矛盾,問題的關鍵就是每次提交時,struts並沒有去重新設定所有checkbox的屬性值,而是有選擇地(初始化值為false)地進行重新設定。

3)解決辦法:

在checkbox後面新增乙個和checkbox的屬性同名並且value為「false」的隱藏輸入框,強迫struts去重新設定checkbox的屬性值:

Qt中QTableView中加入Check列實現

class mymodel public qsqlquerymodel qt itemflags mymodel flags const qmodelindex index constqvariant mymodel data const qmodelindex index,int role con...

Qt中QTableView中加入Check列實現

qtableview qcheckbox列 核取方塊 qtableview中嵌入核取方塊checkbox 第二種方法 設定qabstracttablemodel的flags 函式法 通過delegate建立qcheckbox來實現的check列,只有在該列進入編輯模式時才能夠check unchec...

如何獲取listview裡選中的checkbox

問 求高手解決個問題 小弟在此先謝過了。當我在listview裡放了核取方塊時,當我選中第乙個時,下拉後發現下面有多個和之前選中的那個核取方塊相同位置的核取方塊被選中,我一直很鬱悶,為什麼明明選中了乙個,列印出來卻是多個選中。似乎是有多少頁資料就選中的多少個,每頁都有乙個被選中。跪求解決?大神們 答...