自分で式言語を評価してみる.
J2EE1.4のExpressionEvaluatorを使って,式言語の評価をやってみる.
ただこれ,ExpressionEvaluator
はPageContext(JspContext)
からじゃないと取得できないので,JSPかJSPカスタムタグ内でしか利用できない(と思う).
以下,サンプルコード(Fooクラスについては推して知るべし).
ExpressionEvaluator el = pageContext.getExpressionEvaluator(); String elStr = "${foo.name}は${foo.id}"; pageContext.setAttribute("foo", new Foo("hoge", "boo")); String result = (String)el.evaluate(elStr, String.class, pageContext.getVariableResolver(), null); // resultには "hogeはboo" が代入される.
ExpressionEvaluator.evaluate();
の第2引数であるexpectedTypeの使い道がわからんのう.たいがい,文字列(String)なんとちゃうの?"${1 + 1}"
みたいなのを評価する場合,Integer.class
とか指定できるんだろか?あとで試してみよっと.
ちょっと不明な点もあるけど,自前で式言語を評価できるってのは,それなりに便利.でも,ExpressionEvaluator
相当の機能は,String
クラスあたりが持っててくれると尚うれしい.VariableResolver
をMap
にしたりしてね.
#それじゃ,Velocityか.
[参考]
→Ideas - O'Reilly Media
→http://www.oracle.com/technology/pub/articles/cioroianu_jspapi.html