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 :
- Expression Language – MVC2
- Expression Language – Variable
- Expression Language – Java Bean
- Expression Language – Collection
- Expression Language – Request Parameter
- 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 :
-
Hướng dẫn đọc file xml trong java
-
Hướng dẫn tích hợp Ckfinder vào CKEditor bằng nhiều cách trong PHP
-
Để 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