Html代碼
- 選擇角色<br>
- <s:checkboxlist list="#request.roleuserList" listKey="roleId" listValue="roleName" value="#request.rolelist.{roleId}" name="roleIds"></s:checkboxlist>
說明:
其中#request.roleuserList對應后台放入request作用域的roleuserList這個list;
listKey="roleId"
這里的roleId對應后台roleuserList中role這個bean的屬性roleId,listKey也是將要傳入后台的值;
listValue="roleName" 自然是顯示在頁面上的內容了;
value="#request.rolelist.{roleId}"
這句話的意思是,給s:checkboxlist選取默認值,將對應后台放入request作用域的rolelist這個list中的roleid組合成數組,
類似{1,2,3}這種,然后標簽會自動匹配。
name="roleIds“ 這個roleIds可以在后台action中使用get set一個roleIds數組屬性來取值,或者直接用request作用域取值,都要放數組中;
struts2的s:checkboxlist
struts2里增加了一個新的UT標簽s:checkboxlist,下面介紹下使用方法。
s:checkboxlist用於畫面上顯示一組復選框,缺省是橫排輸出,后面將介紹如何修改ftl文件使得它能按任意方式輸出。
標簽格式:
<s:checkboxlist name="" list="" listKey="" listValue="" value="" />
name-定義標簽名,用於接收畫面上選中的復選框,故應與Action里定義的屬性一致,且多為數組;
list-定義集合變量,用於輸出復選框到畫面上,一般在Action里定義一個List或Map屬性;
listKey-如果在Action里定義的是一個List,則往往會在List里定義一個Bean,它只有兩個屬性,其中一個(比如id)就在這里設置;
如果在Action里定義的是一個Map,則Map的key就在這里設置;
listValue-如果在Action里定義的是一個List,則往往會在List里定義一個Bean,它只有兩個屬性,另外一個(比如name)就在這里設置;
如果在Action里定義的是一個Map,則Map的value就在這里設置;
value-用於回顯畫面上被選中的復選框,假如畫面有輸入檢查,如果有錯則返回原畫面並顯示出錯信息,這時候就需要使用它。
一般把它設成和name一致就可以了。
注意點:
為了能正確顯示已被選中的復選框,一定要使得name的數組類型與listKey的類型一致。
比如,name設成String[] users,則listKey就要設成String id;如果name設成Integer[] users,則listKey就要設成Integer id;
修改ftl文件改變輸出方式:
1.搜索struts2-core-xxx.jar,找到checkboxlist.ftl文件,拷貝出來;
2.在自己的工程的src下新建template.simple包,放置上述文件;
3.用文本編輯器打開該文件,修改成自己希望輸出的格式,保存,OK;
s:checkboxlist用於畫面上顯示一組復選框,缺省是橫排輸出,后面將介紹如何修改ftl文件使得它能按任意方式輸出。
標簽格式:
<s:checkboxlist name="" list="" listKey="" listValue="" value="" />
name-定義標簽名,用於接收畫面上選中的復選框,故應與Action里定義的屬性一致,且多為數組;
list-定義集合變量,用於輸出復選框到畫面上,一般在Action里定義一個List或Map屬性;
listKey-如果在Action里定義的是一個List,則往往會在List里定義一個Bean,它只有兩個屬性,其中一個(比如id)就在這里設置;
如果在Action里定義的是一個Map,則Map的key就在這里設置;
listValue-如果在Action里定義的是一個List,則往往會在List里定義一個Bean,它只有兩個屬性,另外一個(比如name)就在這里設置;
如果在Action里定義的是一個Map,則Map的value就在這里設置;
value-用於回顯畫面上被選中的復選框,假如畫面有輸入檢查,如果有錯則返回原畫面並顯示出錯信息,這時候就需要使用它。
一般把它設成和name一致就可以了。
注意點:
為了能正確顯示已被選中的復選框,一定要使得name的數組類型與listKey的類型一致。
比如,name設成String[] users,則listKey就要設成String id;如果name設成Integer[] users,則listKey就要設成Integer id;
修改ftl文件改變輸出方式:
1.搜索struts2-core-xxx.jar,找到checkboxlist.ftl文件,拷貝出來;
2.在自己的工程的src下新建template.simple包,放置上述文件;
3.用文本編輯器打開該文件,修改成自己希望輸出的格式,保存,OK;