JSTLのc:foreachは、Stringをコンマで分割できる。

Iterableを実装したクラスをc:foreachのitemsに指定したらエラーになった。Iterableでは繰り返せないらしい。なんで?

気になったので、itemsに何を指定できるのか調べた。JSTL1.0仕様(jstl-1_0-fr-spec.pdf) p.66に何を指定できるのか書いてある。

  • 配列
  • java.util.Collection
  • java.util.Iterator
  • java.util.Enumeration
  • java.util.Map - Map.Entryがvarに設定される。
  • String - コンマで分割する(!)

最後のが意外。ちょっと便利な気がするけど、どうだろ。普通は分割してからビューに渡す気もするなー。


以下、関連リンク。

ついでに。あんまり関係ないけど JSP2.0 XML Cheat Sheet。