Expression Language trong JSP (Expression Language in JSP)

JSP Epression Language (EL) giúp dễ dàng truy cập dữ liệu ứng dụng được lưu giữ trong các thành phần JavaBeans và và các đối tượng khác như yêu cầu, phiên, ứng dụng, vv.Có rất nhiều đối tượng tiềm ẩn, các nhà khai thác và từ dữ liệu trong EL.Đây là tính năng mới được thêm vào trong JSP công nghệ phiên bản 2.0.

 

Nội dung trình bày :

  1. Expression Language – MVC2
  2. Expression Language – Variable
  3. Expression Language – Java Bean
  4. Expression Language – Collection
  5. Expression Language – Request Parameter
  6. Expression Language – Operator

 

Controller (Servlet) gửi dữ liệu cho View (JSP)

Controller (Servlet) đến View (JSP)

  • Controller (Servlet)
POJO pojo = . . .
request.setAttribute("key", pojo);
session.setAttribute("key", pojo);
application.setAttribute("key", pojo);
String url="url view";
RequestDispatcher rd =
request.getRequestDispatcher(url);
rd.forward(request, response);
  • View (JSP)

–  Java Bean

<jsp:useBean id="key" type="POJO"
scope="request|session|application"/>
– Scriptlet
<%

–  Scriptlet

<%
POJO pojo=(POJO)request.getAttribute(“Key”);
POJO pojo=(POJO)session.getAttribute(“Key”);
POJO pojo=(POJO)session.getAttribute(“Key”);
%>

MVC 2 – VIEW

  • jsp:useBean – jsp:getProperty

– Khai báo dài dòng
– Không thể truy xuất property con là Java Bean
– Không thể truy xuất phần tử trong mảng

  • Scriptlet

– Khó bảo trì giao diện
– Làm mất ý nghĩa tuyệt vời khi phân tách controller và view

  • Bean : DanhMuc
private String tenDanhMuc;
public String getTenDanhMuc() {…}
  • Servlet
DanhMuc danhMuc = …
request.setAttribute("danhMuc", danhMuc);
rd.forward(…)
  • JSP

Tên danh mục :

${danhMuc.tenDanhMuc}

Lưu trữ các đối tượng trong ArrayList và cách hiển thị view thông qua key

  • Bean : DanhMuc
private String tenDanhMuc;
public String getTenDanhMuc() {…}
  • Servlet
ArrayList<DanhMuc> listDM = …
session.setAttribute("listDM", listDM);
rd.forward(…)
  • JSP

 

Số lượng:

${danhMuc.size()}

Danh mục đầu tiên:

${danhMuc[0].tenDanhMuc}

Expression Language Variable

  • Cú pháp
${tenBien}
  • Servlet
String fullname="Xin chào Trần Phú";
request.setAttribute("fullname", fullname);
rd.forward()
  • JSP
  <p> ${fullname} </p>
  • Kết quả
Xin chào Trần Phú

  • Servlet
String fullname="Xin chào Trần Phú";
HttpSession session = request.getSession();
session.setAttribute("fullname", fullname);
rd.forward()
  • JSP
  <p> ${fullname} </p>
  • Kết quả
Xin chào Trần Phú

  • Servlet
String fullname="Xin chào Trần Phú";
ServletContext applcation = getServletContext();
application.setAttribute("fullname", fullname);
rd.forward()
 
  • JSP
  <p> ${fullname} </p>
  • Kết quả
Xin chào Trần Phú

  • Servlet
String fullname1="Xin chào Trần Phú";
String fullname2="Xin chào Trần Phú";
String fullname3="Xin chào Trần Phú";
request.setAttribute("fullname", fullname1);
session.setAttribute("fullname", fullname2);
application.setAttribute("fullname",fullname3);
  • JSP
  <p> ${fullname} </p>
  • Kết quả
Xin chào Trần Phú
  • Cú pháp
${requestScope.tenBien}
${sessionScope.tenBien}
${applicationScope.tenBien}
  • Servlet
String fullname1="Xin chào Trần Phú";
String fullname2="Xin chào Trần Phú";
String fullname3="Xin chào Trần Phú";
request.setAttribute("fullname", fullname1);
session.setAttribute("fullname", fullname2);
application.setAttribute("fullname",fullname3);
  • JSP
${requestScope.fullanme} <br/>
${sessionScope.fullname} <br/>
${applicationScope.fullname}
 
  • Kết quả
Xin chào Trần Phú
Xin chào Trần Phú
Xin chào Trần Phú

Expression Language – Operator

[] .
()
-(unary) not ! empty
* / div % mod
+ – (binary)
< <= > >= lt le gt ge
== != eq ne
&& and
|| or
?:

Arithmetic: + – * / div % mod

${1 + 2 + 3}

– Relational: == eq != ne < lt > gt <= le >= ge

${var1 == var2}

– Logical: && and || or ! Not

${expr1 && expr2)

Expression Language – Reserve words

lt le gt ge
eq ne true false
and or not instanceof
div mod empty null

Xem thêm các bài viết hay :

  1. Hướng dẫn đọc file xml trong java

  2. Hướng dẫn tích hợp Ckfinder vào CKEditor bằng nhiều cách trong PHP

  3. Để trở thành Team Leader trong nghề lập trình – [Suy nghĩ của một lập trình viên ]- Phần 1

x