隨筆-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!  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 沈丘县| 东乌珠穆沁旗| 长春市| 舒城县| 晋城| 伊川县| 孟津县| 普安县| 陇川县| 萨迦县| 富顺县| 怀仁县| 嘉义县| 双桥区| 成武县| 二手房| 拉萨市| 饶河县| 北宁市| 平武县| 巨鹿县| 新兴县| 石嘴山市| 灵宝市| 石阡县| 沧源| 永泰县| 三门峡市| 麦盖提县| 营口市| 灵璧县| 新宁县| 喜德县| 墨竹工卡县| 民和| 怀来县| 左贡县| 蓬安县| 广饶县| 将乐县| 吉木乃县|