checkboxlistタグ使ってみた
s:checkboxlistタグの使用例
<s:checkboxlist list="#{1:'豊見城',2:'那覇',3:'糸満'}" name="okinawa" />
- list属性には・・・
- Map
なマップを入れる。 - デフォルトでは、Mapのkeyがinputのvalue属性として展開され、Mapのvalueがブラウザに表示されるlabelタグの内容として出力される。
- Map
keyがサーバーに送られる値
valueがブラウザに表示される値
実行されると、こんなコードが出力される
<input type="checkbox" name="okinawa" value="1" id="okinawa-1"/> <label for="okinawa-1" class="checkboxLabel">豊見城</label> <input type="checkbox" name="okinawa" value="2" id="okinawa-2"/> <label for="okinawa-2" class="checkboxLabel">那覇</label> <input type="checkbox" name="okinawa" value="3" id="okinawa-3"/> <label for="okinawa-3" class="checkboxLabel">糸満</label> <input type="hidden" id="__multiselect_create_okinawa" name="__multiselect_okinawa" value="" />
なんかMap変数を渡すとき
こんなListがあったら、
List<Map<String, String>> okinawaList = new ArrayList<Map<String, String>>(); Map<String, String> map; map = new HashMap<String, String>(); map.put("id", "1"); map.put("name", "豊見城"); okinawaList.add(map); map = new HashMap<String, String>(); map.put("id", "2"); map.put("name", "那覇"); okinawaList.add(map); map = new HashMap<String, String>(); map.put("id", "3"); map.put("name", "糸満"); okinawaList.add(map);
下記で、初めのと一緒のことができる。
<s:checkboxlist list="%{okinawaList}" name="okinawa" listKey="id" listValue="name" />
listKeyには、サーバーに送りたい値が入っているMapのKeyを指定。
listValueには、ブラウザに表示したい値が入っているMapのKeyを指定。