1. ホーム
  2. jsp

[解決済み] JSP EL、JSF EL、Unified ELの違い【終了しました

2022-08-20 20:07:28

質問

表現言語(EL)の詳しい違いを教えてください。 JSP EL、JSF EL、Unified ELがあります。

ELの歴史と、Java EEアプリケーションで使用されている最新のELが知りたいです。最新のバージョンでは、すべてのビューテクノロジーに共通するELなのでしょうか?

どのように解決するのですか?

  • 2002年6月。JSTL 1.0が初めてELとともに紹介されました。それは、これらの ${} のようなもので、JSTLタグの中でしか動作しません。これは、Javabeanを呼び出すためのものです。 get メソッドを呼び出すように設計されています。

  • 2003年11月 JSP 2.0 が導入され、EL は JSTL 1.0 から JSP 2.0 に移行されました。 javax.servlet.jsp.el パッケージとなり 標準EL になりました。JSTL 1.1は、ELなしで出荷されました。現在 ${} は、JSPテンプレートテキスト中のJSTLタグの外側でも動作するようになりました。

  • 2004年3月。JSF 1.0が導入され 遅延 EL javax.faces.el パッケージで提供されます。それは、それらの #{} のようなもので、JSFのタグの中だけで動作するものです。標準的なJSPのELと違うのは ${} だけではない点です。 get だけでなく set . これはマネージドビーンの自動生成や入力コンポーネントの値設定に必須でした.標準的なELの ${} はJSFの出力タグでも動作しますが、まだスコープに存在しないBeanは自動生成されませんし、入力値も設定されません。

  • 2005年5月。2006 年 5 月にリリースされる新しい JSP 2.1 の準備の間、延期された EL #{} は、JSFから抽出され、標準ELの ${} の中に javax.el というパッケージがあります。その時点で、それは ユニファイドエレクトロニクス となり、JSF 1.2で導入され、後にJSP 2.1やJava EE 5の標準の一部となりました。また #{} はJSPタグの中でも使えるようになり get の値には使用できませんが set の値には適用されません。また ${} はJSPでもマネージドビーンを自動生成できるようになりましたが set の値ではありません。

  • 2006年11月。JSPの後継としてFaceletsが導入されました。これは #{} の代わりに、JSFタグの外側のテンプレートテキストで <h:outputText> の代わりになります。また ${} として扱います。 #{} と同じなので、Faceletsではどちらも同じ動作になります。

  • 2009年12月。ELはJSP仕様から分離され、JSPとは独立した仕様として維持されることになり、最初のバージョンはEL 2.2 (JSR-245) で、JSP 2.2 と類似しています。主な新機能は、Javabeanのゲッター/セッターを呼び出すだけでなく、パラメータ化されたメソッドを内部で呼び出すことです。 #{} 構文の中で、例えば #{bean.method(argument)} . さらに、FaceletsはJava EE 6の標準の一部となった。

  • 2013年6月。EL 3.0がリリースされ、スタンドアローンのELプロセッサが付属し、プレーンなJava SEアプリケーションで使用することができるようになりました。他の主な新機能は、新しい文字列連結演算子 += また、ストリームやラムダ式を含むコレクションオブジェクトに対する新しい演算子 -> (Java 6/7でも!)、そしてELスコープへの定数のインポートです。