Sự khác biệt giữa JSP EL, JSF EL và Unified EL [đã đóng]


122

Tôi muốn biết sự khác biệt chi tiết giữa các Ngôn ngữ Biểu thức (EL). Có JSP EL, JSF EL và Unified EL.

Tôi muốn biết lịch sử đằng sau EL và EL mới nhất được sử dụng trong các ứng dụng Java EE là gì. Nó có phải là EL chung cho tất cả các công nghệ xem trong các phiên bản mới nhất không?

Câu trả lời:


221
  • Tháng 6 năm 2002: JSTL 1.0 được giới thiệu với EL lần đầu tiên. Đó là những ${}thứ chỉ hoạt động trong thẻ JSTL. Nó được thiết kế để gọi getcác phương thức Javabean .

  • Tháng 11 năm 2003: JSP 2.0 được giới thiệu và EL được chuyển từ JSTL 1.0 sang JSP 2.0 trong javax.servlet.jsp.elgói và nó trở thành tiêu chuẩn EL như một phần của tiêu chuẩn J2EE 1.4. JSTL 1.1 đã được xuất xưởng mà không có EL. Bây giờ cũng ${}hoạt động bên ngoài thẻ JSTL trong văn bản mẫu JSP.

  • Tháng 3 năm 2004: JSF 1.0 được giới thiệu với EL hoãn lại trong javax.faces.elgói. Đó là những #{}thứ chỉ hoạt động bên trong thẻ JSF. Sự khác biệt với JSP EL tiêu chuẩn ${}là nó không chỉ làm được getmà còn có thể làm được set. Điều này là bắt buộc đối với việc tự động tạo bean được quản lý và thiết lập giá trị của các thành phần đầu vào. EL tiêu chuẩn cũng ${}hoạt động trong các thẻ đầu ra JSF, nhưng chúng sẽ không tự động tạo các bean nếu chúng chưa tồn tại trong phạm vi và chúng sẽ không đặt các giá trị đầu vào.

  • Tháng 5 năm 2005: Trong khi vẫn chuẩn bị cho JSP 2.1 mới sẽ được phát hành vào tháng 5 năm 2006, EL hoãn lại #{}được trích xuất từ ​​JSF và kết hợp với EL tiêu chuẩn ${}trong javax.elgói. Tại thời điểm đó, nó trở thành EL thống nhất được giới thiệu với JSF 1.2 và sau này trở thành một phần của tiêu chuẩn JSP 2.1 và Java EE 5. Các #{}bây giờ có thể cũng được sử dụng trong thẻ JSP để getgiá trị, nhưng không phải để setgiá trị. Các ${}thể bây giờ trong JSP cũng tự động tạo các hạt cà phê, nhưng không được quản lý setgiá trị.

  • Tháng 11 năm 2006: Khuôn mặt được giới thiệu như là người kế nhiệm của JSP. Nó được phép sử dụng #{}trong văn bản mẫu bên ngoài thẻ JSF, thay thế cho <h:outputText>không có bất kỳ thuộc tính nào. Nó cũng xử lý ${}như #{}vậy, vì vậy cả hai đều hoạt động giống nhau trong Khuôn mặt.

  • Tháng 12 năm 2009: EL được trích xuất từ ​​đặc tả JSP và trở thành một thông số kỹ thuật độc lập sẽ được duy trì độc lập với JSP, phiên bản đầu tiên là EL 2.2 (JSR-245), tương tự với JSP 2.2. Tính năng mới chính là gọi các phương thức được tham số hóa thay vì chỉ gọi #{}cú pháp bên trong của Javabean getters / setters , ví dụ #{bean.method(argument)}. Hơn nữa, Khuôn mặt đã trở thành một phần của tiêu chuẩn Java EE 6.

  • Tháng 6 năm 2013: EL 3.0 được giới thiệu đi kèm với bộ xử lý EL độc lập, cho phép sử dụng trong một ứng dụng Java SE đơn giản. Các tính năng mới chính khác là toán tử nối chuỗi mới +=, các hoạt động mới cho các đối tượng tập hợp, bao gồm các luồng và biểu thức Lambda ->(ngay cả trên Java 6/7!) Và nhập các hằng số vào phạm vi EL.


18

Thêm vào câu trả lời của BalusC ...

EL ban đầu được hình thành và thực hiện bởi Nathan Abramson của Art Technology Group vào năm 2001. Vào thời điểm triển khai này được gọi là Ngôn ngữ diễn đạt có thể đơn giản nhất (SPEL). Việc triển khai sau đó đã được đưa vào JSTL1.0. Nathan là một phần của Nhóm chuyên gia JSR-052 , và được ghi nhận trong đặc tả JSTL như là động lực thúc đẩy ngôn ngữ diễn đạt.

"Đặc biệt đề cập đến Nathan Abramson vì đã trở thành động lực thúc đẩy ngôn ngữ diễn đạt được giới thiệu trong JSTL"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.