Dict.CN 在線詞典, 英語學(xué)習(xí), 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統(tǒng)計

          留言簿(23)

          積分與排名

          優(yōu)秀學(xué)習(xí)網(wǎng)站

          友情連接

          閱讀排行榜

          評論排行榜

          Struts的html:checkBox標簽問題

          ???? 被Struts的html:checkBox標簽使用的小問題郁悶了兩天,今天終于找到了解決的辦法。如果大家也遇到同樣的問題,可以參考。

          1)需求:

          ???? 當(dāng)通過菜單進入頁面時,頁面中的checkbox處于被選中狀態(tài),頁面提交后forward回本頁,對應(yīng)的checkbox保持提交時的狀態(tài),也就是說:如果提交時checkbox是選中狀態(tài)回來仍然是選中狀態(tài);如果用戶在提交前將checkbox的勾去掉,回來時checkbox應(yīng)該為為選中狀態(tài)。

          2)問題:

          ???? 這個需求看起來很簡單,只需要
          ??? 1)在對應(yīng)的form中將checkbox對應(yīng)的屬性設(shè)為true就行了:
          ???????? private boolean syaken = true;
          ??? 2)在對應(yīng)的jsp中使用html:checkbox標簽就行了
          ? ? ?? <html:checkbox property="syaken"/>
          ??? 但問題是checkbox標簽不會去set初始化值為true的checkbox屬性,不賦初值時Struts默認賦為false;
          ??? 從網(wǎng)上找資料有人說可以實現(xiàn)ActionFrom的reset()方法將對應(yīng)的屬性值設(shè)為false,但reset方法是在form實例化以后被調(diào)用的,也就是說你初始化的值true將被重置為false,這和直接將屬性值設(shè)為false沒有任何區(qū)別,這樣做的結(jié)果是你從菜單進入頁面時checkbox是處于不被選中的狀態(tài)。
          ?? 他們之間存在著矛盾,問題的關(guān)鍵就是每次提交時,Struts并沒有去重新設(shè)置所有checkbox的屬性值,而是有選擇地(初始化值為false)地進行重新設(shè)置。

          3)解決辦法:

          ???? 超級簡單,在checkbox后面添加一個和checkbox的屬性同名并且value為“false”的隱藏輸入框,強迫Struts去重新設(shè)置checkbox的屬性值:
          ????? <html:checkbox property="syaken"/>&nbsp;
          ? ??? <input type="hidden" name="syaken" value="false">

          ???
          這個問題郁悶了我兩天,沒想到解決辦法這么簡單。

          posted on 2006-04-24 16:53 都市淘沙者 閱讀(1314) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大埔区| 大余县| 惠州市| 中西区| 江达县| 高密市| 钟山县| 仁怀市| 沙坪坝区| 濉溪县| 广宁县| 什邡市| 获嘉县| 兰考县| 东明县| 逊克县| 如皋市| 黎城县| 台东市| 阿克陶县| 板桥市| 黎平县| 海林市| 大竹县| 天台县| 台东县| 安福县| 丰原市| 界首市| 眉山市| 礼泉县| 莱西市| 陇川县| 武安市| 平南县| 宜都市| 衡南县| 汉川市| 项城市| 广德县| 祁门县|