2008年10月8日水曜日

TeedaのSelectOneMenuでMapをそのまま使う

スズキです。

今までListを使っていたのですが、そういえばMapも使えたなー、
と思い、試してみました。

--------
public Map hogeItems;
public int hoge;
public String prerender() {
  this.hogeItems = new ListOrderedMapMap();
  this.hogeItems.put("hoge1", 1);
  this.hogeItems.put("hoge2", 2);
  this.hogeItems.put("hoge3", 3);
  return null;
}
--------

まあ、下記の内容です。
https://www.seasar.org/issues/browse/TEEDA-339

hogeItemsにListや配列を使うときに比べ、
記述が非常にシンプルになりうれしいのですが、
Mapの実装にHashMapを使うと表示順がListのような
追加順になりません。

これを回避するために、"Apache Commons Collections"の
ListOrderedMapMap使うようにしました。
http://commons.apache.org/collections/api-release/org/apache/commons/collections/map/ListOrderedMap.html

このクラスは、Listのように追加した順番を保持するので、
HTMLに表示したときも追加順で表示されます。

結局OVal使わなかったなー...どっかで使いたいなー...

--
http://suz-lab.blogspot.com/

0 コメント: