問題原型:???? 添加頁(yè)面中有10個(gè)checkbox,用戶選中了5個(gè)后提交?????修改頁(yè)面中應(yīng)顯示10個(gè)checkbox,同時(shí)應(yīng)該有5個(gè)已經(jīng)被選中?詳細(xì)實(shí)際問題:????為了滿足業(yè)務(wù)需要,從linux安裝盤中的comps.xml中讀取提供的服務(wù)所依賴的包??? 顯示在頁(yè)面上,根據(jù)包的類型(default,mandatory,optional)決定顯示的方法??? default默認(rèn)選中,mandatory不提供選擇,optional為用戶可選??
在處理層,采用struts的form來接受,定義string [] nodeRPMs接受即可接受后存在數(shù)據(jù)庫(kù)里,然后讀出來在顯示在頁(yè)面上在修改頁(yè)面,首先應(yīng)該有全部的checkbox,同時(shí)用戶選中的應(yīng)該已經(jīng)被打勾(這來自數(shù)據(jù)庫(kù)讀出的記錄),經(jīng)過中午的查找資料才知道可以使用mutilbox解決這個(gè)問題
mutilbox會(huì)根據(jù)你讀出的值來設(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)被選中所以這樣就可以解決問題了