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

          問題原型:
          ???? 添加頁面中有10個checkbox,用戶選中了5個后提交
          ?????修改頁面中應(yīng)顯示10個checkbox,同時應(yīng)該有5個已經(jīng)被選中
          ?
          詳細實際問題:
          ????為了滿足業(yè)務(wù)需要,從linux安裝盤中的comps.xml中讀取提供的服務(wù)所依賴的包
          ??? 顯示在頁面上,根據(jù)包的類型(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接受即可
          接受后存在數(shù)據(jù)庫里,然后讀出來在顯示在頁面上

          在修改頁面,首先應(yīng)該有全部的checkbox,同時用戶選中的應(yīng)該已經(jīng)被打勾(這來自數(shù)據(jù)庫讀出的記錄),經(jīng)過中午的查找資料
          才知道可以使用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會根據(jù)你讀出的值來設(shè)定
          ?struts中的checkbox是單選的,它的值應(yīng)該只有true和false或者yes no或者on off之分;
          r如果希望使用一組可以多選的checkbox,在struts中的頁面標簽應(yīng)該是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"一定是頁面相對應(yīng)的formbean中的一個屬性,并且應(yīng)該是數(shù)組:
          private String[] strArray; //提供get set方法

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

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

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

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 博兴县| 武强县| 罗定市| 习水县| 台江县| 永康市| 文化| 正蓝旗| 原平市| 美姑县| 通渭县| 桃江县| 峨眉山市| 资阳市| 廉江市| 凌海市| 绥滨县| 阿合奇县| 郧西县| 五常市| 义马市| 盘山县| 孝感市| 大理市| 游戏| 当涂县| 青川县| 开远市| 宣威市| 大荔县| 永昌县| 互助| 高雄市| 玛纳斯县| 延寿县| 军事| 雷波县| 孝昌县| 铁力市| 玉田县| 玉树县|