-JSP2.1

JSR245としてスタートしているJSP2.1のスペックですが、まさに昨日・一昨日の悩み解決になるかと思う文章が。

JavaServer Faces 1.0 (JSR-127) defines a standard framework for building User Interface components, and builds on top of JSP 1.2 technology. Because JSP 1.2 technology does not have an integrated expression language and because the JSP 2.0 EL does not meet all of the needs of JSF, a new expression language was developed for JSF 1.0. The JSF EG attempted to make the language as compatible with JSP 2.0 as possible but some differences were necessary. The JSF EG agreed that the JSF 1.0 EL will be phased out in the next release of the JSF specification in favor of the JSP 2.1 expression language. It is a goal, therefore, of JSP 2.1 to enhance the expression language to meet the needs of JSF technology. Many of these enhancements are likely to be useful in other contexts as well.


from JSR245

まあ、そうなるでしょうな。JSPおよびJSFの式言語スペックが違いすぎなんで。スケジュールは、

  • Expert Group Formation: May 2004
  • Early Draft Review: September 2004
  • Public Review: November 2004
  • Proposed Final Draft: January 2005
  • Final Release: This will occur at the time of the J2EE 1.5 Final Release.

この予定を見ると、Public Reviewまで出ているはずですが。。。内容は、

  • ability to redefine the behavior of the "." operator through a Property Resolver API
  • ability to plug in Variable Resolvers on a per-application and per-page basis
  • ability to plug in Property Resolvers on a per-application and per-page basis
  • ability to express references to bean methods using the expression language and invoking those methods via a Method Binding API
  • ability to express references to bean properties using the expression language and getting/setting those attributes via a Property Binding API
  • ability to defer expression evaluation until a time of a tag handler's choosing

一番はじめの、「Property Resolver API」はおそらくOGNLのPropertyAccessorみたいな感じかなと思います。
二番目および三番目のVariable ResolverとProperty Resolverのアプリケーションおよびページごとにプラグインできる機能が提供されるということですから、Mayaでもそうしましょう。
四番目の「Method Binding API」もOGNLではすでにある機構を指して言ってるのでしょう。式言語でメソッド呼び出しを行えると。ただ、OGNLに無いのは「references to bean methods」。JSFのMethodBindingを指して言ってるのだと思いますが、これがOGNLには無いので細工が必要です。
五番目の「Property Binding API」は値の参照のみならず設定ができるようにあらかじめ式言語エンジンを作りこんでおくということだと思います。OGNLに有る機能のことでしょう。JSFにもあります。
最後がよくわからないけど、想像するに、JSPエンジン側で式言語を評価するか、カスタムタグの中で式言語を評価するかをTLDに宣言するってシナリオかな?おそらく宣言しないデフォルトでエンジン評価なのでしょう。

  • This specification targets the J2EE 1.5 Platform. It will be based on the corresponding release of the J2SE platform.

いつになるんでしょうね。結局悩み解決になっていない。。。