<< 2006/11/03 | Home | 2006/11/05 >>
PR: 転職    葬式    マンスリーマンション 神戸    北海道    環境    FX    不動産担保融資    桐ヶ谷斎場    海外旅行    専門学校   

OGNLとEL

OGNLでは、#{}という表記で、その場にMapが生成できる。

    <s:select label="年齢" name="ageRange"
              list="#{0:'10歳未満', 1:'10代', 2:'20代', 3:'30代', 4:'40代', 5:'50代', 6:'60歳以上'}"/>

でも、これはJSP 2.1からのDefferred式(何て訳すんだ? 遅延評価式?)と、もろにぶつかる。Jettyだと、こんなエラーが出る。

/createAccount.jsp(11,4) PWC6038: "#{0:'10???', 1:'10?', 2:'20?', 3:'30?', 4:'40?', 5:'50?', 6:'60???'}" contains invalid expression(s): javax.el.ELException: Error Parsing: #{0:'10???', 1:'10?', 2:'20?', 3:'30?', 4:'40?', 5:'50?', 6:'60???'}

#の前に\を入れてエスケープしてみると、

     [java] tag 'select', field 'list', name 'ageRange': The requested list key
'\#{0:'10歳未満', 1:'10代', 2:'20代', 3:'30代', 4:'40代', 5:'50代', 6:'60歳以上'
}' could not be resolved as a collection/array/map/enumeration/iterator type. 

\も含めてOGNLエンジンに渡されてしまう。OGNLはJSP 2.1より前から作成されたものだし、JSP 2.1の開発チームはOGNLなんて知ったことじゃなかろうし。困ったもんだ。

Vistaライセンス。

とりあえず一件落着か。しかしまぁ結論はともかく、お互いに、いい教訓になったということか。

しょぱん

なんでChopinじゃないのかと思ったら、チョコレートのchoと器のpanをつなげて、作曲家のChopinと語呂合わせをしたということらしい。

JSR308

これはなかなか良さそう。変更不可配列は悲願かも。配列インターフェースって結構安易に使われるけど、そのくせ防御的コピーしてなくてトラブルの元になったりするし(全員が一流プログラマだと前提できる特殊プロジェクトなら、それもアリだろうけど、普通はメンバが入れ替わっていくから、実際には、あり得ない)。

メソッドに副作用が無いと宣言できるものも、便利かも。確かGCCでも関数をconst宣言すると、同じ関数を同一引数で複数回呼び出すコードを最適化してくれたよね。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8