Perbedaan antara JSP EL, JSF EL dan Unified EL [closed]

122

Saya ingin mengetahui perbedaan mendetail antara Expression Languages ​​(EL). Ada JSP EL, JSF EL dan Unified EL.

Saya ingin mengetahui sejarah di balik EL dan EL terbaru apa yang digunakan dalam aplikasi Java EE. Apakah EL umum untuk semua teknologi tampilan di versi terbaru?

Krishna
sumber

Jawaban:

221
  • Jun 2002: JSTL 1.0 diperkenalkan dengan EL untuk pertama kalinya. Itu adalah ${}hal - hal yang hanya berfungsi di tag JSTL. Ini dirancang untuk memanggil getmetode Javabean .

  • Nov 2003: JSP 2.0 diperkenalkan dan EL dipindahkan dari paket JSTL 1.0 ke JSP 2.0 javax.servlet.jsp.eldan menjadi EL standar sebagai bagian dari standar J2EE 1.4. JSTL 1.1 dikirim tanpa EL. Sekarang ${}bekerja di luar tag JSTL dalam teks template JSP juga.

  • Maret 2004: JSF 1.0 diperkenalkan dengan EL yang ditangguhkan dalam javax.faces.elpaket. Itu adalah #{}hal - hal yang hanya berfungsi di dalam tag JSF. Perbedaan dengan JSP EL standar ${}adalah tidak hanya melakukan get, tetapi juga dapat melakukannya set. Ini wajib untuk pembuatan otomatis kacang terkelola dan pengaturan nilai komponen input. EL standar juga ${}berfungsi dalam tag keluaran JSF, tetapi mereka tidak akan membuat kacang secara otomatis jika belum ada dalam cakupan dan tidak akan menyetel nilai masukan.

  • Mei 2005: Saat masih mempersiapkan JSP 2.1 baru yang akan dirilis Mei 2006, EL yang ditangguhkan #{}diekstraksi dari JSF dan digabungkan dengan EL standar ${}dalam javax.elpaket. Kemudian , menjadi EL terpadu yang diperkenalkan dengan JSF 1.2 dan kemudian menjadi bagian dari standar JSP 2.1 dan Java EE 5. The #{}sekarang dapat juga digunakan dalam tag JSP untuk getnilai-nilai, tetapi tidak untuk setnilai-nilai. The ${}sekarang dapat di JSP juga auto-menciptakan dikelola kacang, tapi tidak setnilai-nilai.

  • November 2006: Facelet diperkenalkan sebagai penerus JSP. Ini diizinkan untuk digunakan #{}dalam teks template di luar tag JSF, sebagai pengganti <h:outputText>tanpa atribut apa pun. Itu juga diperlakukan ${}sebagai #{}, jadi keduanya berperilaku sama di Facelet.

  • Des 2009: EL diekstraksi dari spesifikasi JSP dan menjadi spesifikasi mandiri yang akan dipertahankan secara independen dari JSP, versi pertama adalah EL 2.2 (JSR-245), analog dengan JSP 2.2. Fitur baru utama adalah memanggil metode berparameter daripada hanya memanggil pengambil / penyetel Javabean di dalam #{}sintaks, mis #{bean.method(argument)}. Selanjutnya, Facelet menjadi bagian dari standar Java EE 6.

  • Jun 2013: EL 3.0 diperkenalkan yang dilengkapi dengan prosesor EL mandiri, yang memungkinkan penggunaan dalam aplikasi Java SE biasa. Fitur baru utama lainnya adalah operator penggabungan string baru +=, operasi baru untuk objek koleksi, termasuk aliran dan ekspresi Lambda ->(bahkan di Java 6/7!) Dan mengimpor konstanta ke dalam lingkup EL.

BalusC
sumber
18

Menambah jawaban BalusC ...

EL awalnya digagas dan diimplementasikan oleh Nathan Abramson dari Art Technology Group pada tahun 2001. Pada saat itu implementasinya dikenal sebagai Simplest Possible Expression Language (SPEL). Implementasinya kemudian dimasukkan dalam JSTL1.0. Nathan adalah bagian dari JSR-052 Expert Group , dan dikreditkan dalam spesifikasi JSTL sebagai kekuatan pendorong di balik bahasa ekspresi.

"Disebutkan secara khusus kepada Nathan Abramson karena menjadi kekuatan pendorong di balik bahasa ekspresi yang diperkenalkan di JSTL"

jsears
sumber