ぶろぐ

日記です

checkboxlistタグ使ってみた


s:checkboxlistタグの使用例

<s:checkboxlist list="#{1:'豊見城',2:'那覇',3:'糸満'}" name="okinawa" />
  • list属性には・・・
    • Mapなマップを入れる。
    • デフォルトでは、Mapのkeyがinputのvalue属性として展開され、Mapのvalueがブラウザに表示されるlabelタグの内容として出力される。

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を指定。