隨筆-26  評論-13  文章-46  trackbacks-0

          問題原型:
          ???? 添加頁面中有10個checkbox,用戶選中了5個后提交
          ?????修改頁面中應顯示10個checkbox,同時應該有5個已經被選中
          ?
          詳細實際問題:
          ????為了滿足業務需要,從linux安裝盤中的comps.xml中讀取提供的服務所依賴的包
          ??? 顯示在頁面上,根據包的類型(default,mandatory,optional)決定顯示的方法
          ??? default默認選中,mandatory不提供選擇,optional為用戶可選
          ??

          < c:choose >
          ??
          < c:when? test ="${p.type?==?'mandatory'}" >
          ????
          < td >
          ?????
          < input? type ="checkbox" ?name ="nodeRPMS"
          ????style
          ="VISIBILITY:?hidden;?"
          ????checked
          ="true"
          ????value
          ="<c:out?value=" ${p.rpmName}" /> "/>
          ????
          </ td >
          ??
          </ c:when >

          ???
          < c:when? test ="${p.type?==?'default'}" >
          ????
          < td >
          ??????
          < input? type ="checkbox"
          ???????name
          ="nodeRPMS" ??checked =true??
          ???????
          value ="<c:out??value=" ${p.rpmName}" /> "/>
          ????
          </ td >
          ???
          </ c:when >

          ??
          < c:when? test ="${p.type?==?'optional'}" >
          ????
          < td > ?
          ?????
          < input? type ="checkbox" ?name ="nodeRPMS"
          ???????value
          ="<c:out?value=" ${p.rpmName}" /> "/>
          ????
          </ td >
          ??
          </ c:when >
          </ c:choose >

          在處理層,采用struts的form來接受,定義string [] nodeRPMs接受即可
          接受后存在數據庫里,然后讀出來在顯示在頁面上

          在修改頁面,首先應該有全部的checkbox,同時用戶選中的應該已經被打勾(這來自數據庫讀出的記錄),經過中午的查找資料
          才知道可以使用mutilbox解決這個問題

          < c:choose >
          ??
          < c:when?test = " ${p.type?==?'mandatory'} " >
          ????
          < td >
          ??????
          < input?type = " checkbox " ?name = " nodeRPMS "
          ????style
          = " VISIBILITY:?hidden;? "
          ????
          checked = " true "
          ????value
          = " <c:out?value= " $ {p.rpmName} " /> " />
          ???
          </ td >
          ??
          </ c:when >

          ??
          < c:otherwise >
          ???
          < td >
          ??????
          < html:multibox?property = " nodeRPMS " >
          ??????
          < c: out ?value = " ${p.rpmName} " />
          ??????
          </ html:multibox > ????
          ???
          </ td >
          ??
          </ c:otherwise >
          </ c:choose >


          mutilbox會根據你讀出的值來設定
          ?struts中的checkbox是單選的,它的值應該只有true和false或者yes no或者on off之分;
          r如果希望使用一組可以多選的checkbox,在struts中的頁面標簽應該是html:multibox,它的用法:<html:multibox property="strArray" value="value1">或者
          ?????? <html:multibox property="strArray">value2</html:multibox>

          真正載頁面上使用時可能是這樣:
          <html:multibox property="strArray">a</html:multibox>
          <html:multibox property="strArray">b</html:multibox>
          <html:multibox property="strArray">c</html:multibox>

          當然"strArray"一定是頁面相對應的formbean中的一個屬性,并且應該是數組:
          private String[] strArray; //提供get set方法

          這樣,如果我們在頁面上面選中了前兩個,則strArray.length=2;strArray[0]里面的值是a,strArray[1]里面的值是b;
          如果我們把form中的strArray設置為strArray[0]="b",strArray[1]="c",則轉到頁面之后,頁面上只有后兩項被選中
          所以這樣就可以解決問題了

          posted on 2006-04-05 16:18 似水流年 閱讀(5153) 評論(1)  編輯  收藏 所屬分類: Struts

          評論:
          # re: struts html:multibox標簽(轉載) 2011-06-23 16:12 | 何楊
          Good!  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 双牌县| 宁都县| 当雄县| 本溪| 栖霞市| 秦安县| 宝清县| 枣阳市| 兴山县| 常州市| 通州市| 怀来县| 页游| 渭南市| 北碚区| 虎林市| 广南县| 樟树市| 莱西市| 留坝县| 天等县| 游戏| 清丰县| 庆城县| 沁源县| 石城县| 大荔县| 山阳县| 房产| 鄂托克前旗| 莱西市| 胶州市| 辉南县| 临沂市| 壤塘县| 湟中县| 万山特区| 加查县| 永胜县| 龙州县| 辽宁省|