10

Spring が Web フロー製品で OGNL よりも Spring EL を使用するようになった正確な理由を知りたいと思っていました。

http://static.springsource.org/spring-webflow/docs/2.2.x/reference/htmlsingle/spring-webflow-reference.html#el-language-choices

OGNL を使用すると、単純なクラスを動的に作成し、メソッドなどをフローから直接実行できます。プレゼンテーションに基づいているため、実際の Web ページ テンプレート (つまり JSP) 内でこれを行うのは良い習慣ではないことはわかっていますが、Web フローはプログラムのロジックを制御し、そこで OGNL を効果的に使用する機能は非常に便利です。さらに、フローをテストして、簡単に機能することを確認できます。

だから、2つの質問:

  1. 特にSpring Webflowのコンテキストで、OGNLよりもSpring ELを使用することに大きな利点はありますか?

  2. Spring EL を使用してオブジェクトを作成できますか?

4

2 に答える 2

15

さて、「なぜ」はSpELドキュメントに記載されています:

OGNL、MVEL、JBoss ELなど、他にもいくつかのJava式言語が利用可能ですが、Spring式言語は、Springコミュニティにサポートされている単一の式言語を提供するために作成されました。春のポートフォリオ。

OGNLには利点とファンがありますが、その機能はSpring 3に必要なものには制限されすぎているため、SpELが誕生しました。また、SpELがSpringの基本表現言語になったため、WebFlowはOGNLの代わりとしてそれに移行しました。

ただし、SpELを使用する理由はあまりないので、特定のタスクを実行する方法を説明できませんでした。

その利点としては、OGNLが停滞している一方で、SpELはSpringのコア部分であり、継続的に改善および拡張されることが主な利点だと思います。率直に言って、OGNLは死んでいます(現在、opensymphony.comによって維持されていますが、これは動的で活発な組織ではありません)

于 2011-01-11T19:43:44.587 に答える
1

SpEL が Spring を維持している人々にとって意味をなさないと主張するつもりはありませんが、OGNL は (完全に) 死んでおらず、opensymphony によって維持されていません。

https://github.com/jkuhnert/ognl

それで、そこに。プフフトトット

更新(2011 年 5 月 23 日): 今後、Apache が OGNL をホストするようです。http://incubator.apache.org/projects/ognl.html

更新 2 (2014 年 4 月 3 日): http://commons.apache.org/proper/commons-ognl/ しばらくそこにありましたが、今日、このランダムなスレッドに再び気づきました。

于 2011-01-11T21:16:38.943 に答える