隨筆-26  評(píng)論-13  文章-46  trackbacks-0

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

          在修改頁(yè)面,首先應(yīng)該有全部的checkbox,同時(shí)用戶選中的應(yīng)該已經(jīng)被打勾(這來(lái)自數(shù)據(jù)庫(kù)讀出的記錄),經(jīng)過(guò)中午的查找資料
          才知道可以使用mutilbox解決這個(gè)問(wèn)題

          < 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會(huì)根據(jù)你讀出的值來(lái)設(shè)定
          ?struts中的checkbox是單選的,它的值應(yīng)該只有true和false或者yes no或者on off之分;
          r如果希望使用一組可以多選的checkbox,在struts中的頁(yè)面標(biāo)簽應(yīng)該是html:multibox,它的用法:<html:multibox property="strArray" value="value1">或者
          ?????? <html:multibox property="strArray">value2</html:multibox>

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

          當(dāng)然"strArray"一定是頁(yè)面相對(duì)應(yīng)的formbean中的一個(gè)屬性,并且應(yīng)該是數(shù)組:
          private String[] strArray; //提供get set方法

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

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

          評(píng)論:
          # re: struts html:multibox標(biāo)簽(轉(zhuǎn)載) 2011-06-23 16:12 | 何楊

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 璧山县| 吉隆县| 宁乡县| 凤山市| 中江县| 新建县| 中宁县| 安徽省| 阿勒泰市| 肥城市| 晋城| 多伦县| 无棣县| 松桃| 永年县| 龙岩市| 沈丘县| 绵竹市| 佛冈县| 普安县| 陇西县| 大理市| 五华县| 通化市| 铁力市| 山阴县| 楚雄市| 泗阳县| 游戏| 沂源县| 福建省| 景宁| 枣阳市| 孟村| 闽侯县| 井研县| 宣武区| 淄博市| 绥阳县| 神木县| 闵行区|