Bài giảng Phát triển Web với Java EE - Bài 5: JSP custom tag

Custom tags là gì?

 Là các phần tử JSP do User tự định nghĩa (ngược với các

thẻ chuẩn tắc: standard tags)

 Đóng gói các tác vụ phải thực hiện nhiều lần

 Lấy từ thư viện thẻ (tag library) tự định nghĩaCustom Tags có thể

 Được tùy biến thông qua các thuộc tính truyền từ trang

JSP gọi chúng

 Có thể truyền lại tham số cho trang gọi

 Truy cập được tất cả các đối tượng có trong trang JSP

 Được lồng vào nhau, giao tiếp thông qua các biến cục bộ

pdf 40 trang kimcuc 5080
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phát triển Web với Java EE - Bài 5: JSP custom tag", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phát triển Web với Java EE - Bài 5: JSP custom tag

Bài giảng Phát triển Web với Java EE - Bài 5: JSP custom tag
Bài 5: JSP custom tag 
Nôi dung bài học 
 Custom tags là gì? 
 Tại sao cần Custom tags? 
 TAG LIBRARY 
 Simple Custom Tag 
 Attibute Custom Tag 
Custom tags là gì? 
 Là các phần tử JSP do User tự định nghĩa (ngược với các 
thẻ chuẩn tắc: standard tags) 
 Đóng gói các tác vụ phải thực hiện nhiều lần 
 Lấy từ thư viện thẻ (tag library) tự định nghĩa 
Custom Tags có thể 
 Được tùy biến thông qua các thuộc tính truyền từ trang 
JSP gọi chúng 
 Có thể truyền lại tham số cho trang gọi 
 Truy cập được tất cả các đối tượng có trong trang JSP 
 Được lồng vào nhau, giao tiếp thông qua các biến cục bộ 
Ví dụ các Custom Tag 
 Thiết lập/truy cập các Implicit objects 
 Xử lý forms 
 Truy cập database 
 Điều khiển (rẽ nhánh, vòng lặp) 
Các thư viện thẻ (Custom Tag Library) đã có sẵn 
 Java Standard Tag Library (JSTL) 
 Tags for setting/getting attributes, iteration, etc 
 Tags truy cập database 
 Tags for internationalized formatting 
 Tags for XML Jakarta-Taglibs 
TAG LIBRARY 
 Là tập các thẻ cùng chung mục đích 
 Một hoặc nhiều thẻ có thể được đóng gói thành thư viện 
thẻ 
TAG LIBRARY 
 Các thành phần liên quan đến Tag Library 
• Tag Handler Class 
• Cách thức Tag xử lý 
• Tag Library Descriptor File 
• Mô tả Tag 
• JSP Page 
• Khai báo và sử dụng Tag 
 
TAG LIBRARY 
 Tag Handler Class 
• Tag Handler chịu trách nhiệm xử lý trên Tag, chuyển Tag 
thành mã nguồn Java 
• Tag Handler phải cài đặt lại javax.servlet.jsp.tagext.Tag 
• Thường kế thừa từ TagSupport hoặc BodyTagSupport 
• Tag Handler để trong Source Packages của ứng dụng 
web giống như Servlets, Java Beans 
 
TAG LIBRARY 
 Tag Library Descriptor File 
• File XML mô tả 
• Tag Name 
• Các Attribute 
• -Chỉ định Tag Handler Class 
• Thư viên được khai báo và sử dụng các Tag trong trang 
JSP 
 
TAG LIBRARY 
 JSP Page 
• Import Tag Library - Tham chiếu đến URL của TLD 
• Khai báo Tag Prefix Sử dụng các Tag 
 
SIMPLE CUSTOM TAG 
 Đặc điểm 
• Không có thuộc tính 
• Không có thân 
 Định dạng 
• 
SIMPLE CUSTOM TAG 
 Các bước xây dựng và sử dụng 
 Bước 1: Tạo lớp Tag Handler Class kế thừa TagSupport 
trong Source Packages 
 Bước 2: Tao Tag Library Descriptor (TLD) mô tả thông tin 
về Simple Custom Tag 
• - Có thể mô tả thông tin nhiều Tag 
 Bước 3: Khai báo và sử dụng Simple Custom Tag trong 
JSP 
 
SIMPLE CUSTOM TAG 
 B1:Tạo Tag Handler Class kế thừa TagSupport 
 
SIMPLE CUSTOM TAG 
 Bước 1: Tạo lớp Tag Handler Class 
 Trong Tag Handler Class 
• Cài đặt lại doStartTag() 
• Xử lý khi bắt đầu mở Tag 
• Return SKIP_BODY 
• Cài đặt lại doEndTag() 
• Xử lý sau khi kết thúc thân Tag 
• Return EVAL_PAGE 
 Trong doStartTag và doEndTag có thể sử dụng 
• thuộc tính pageContext kế thừa được từ TagSupport 
 
SIMPLE CUSTOM TAG 
 B1:Tạo Tag Handler Class kế thừa TagSupport 
• Một số phương thức hay dùng với pageContext 
 
Đối tượng Phương thức 
out JspWriter getOut() 
session HttpSession getSession() 
request ServletRequest getRequest() 
response ServletResponse getResponse() 
exception Exception getException() 
errorData ErrorData getErrorData() 
page Object getPage() 
config ServletConfig getServletConfig() 
context ServletContext getServletContext() 
SIMPLE CUSTOM TAG 
 B1:Tạo Tag Handler Class kế thừa TagSupport 
• Include và Forward với pageContext 
Thao tác Phương thức 
Include void include(String relativeURLPath) 
Forward void forward(String relativeURLPath) 
SIMPLE CUSTOM TAG 
 B2: Tạo Tag Library Descriptor (TLD) 
• File XML mô tả 
• Tag Name 
• Các Attribute 
• -Chỉ định Tag Handler Class 
• Tạo TLD trong Web Pages 
 
SIMPLE CUSTOM TAG 
 B2: Tạo Tag Library Descriptor (TLD) 
 
SIMPLE CUSTOM TAG 
 B2: Tạo Tag Library Descriptor (TLD) 
• empty : Không có 
thân 
 
SIMPLE CUSTOM TAG 
 B3: Khai báo và sử dụng trong JSP 
 Khai báo 
• <%@taglib 
 prefix=nprefixName" 
 uri="uri" %> 
 Sử dụng 
• 
 
Ví dụ: SIMPLE CUSTOM TAG 
 B1:Tạo Tag Handler Class kế thừa TagSupport 
 
Ví dụ: SIMPLE CUSTOM TAG 
 B2: Tạo Tag Library Descriptor (TLD) 
 
Ví dụ: SIMPLE CUSTOM TAG 
 B3: Khai báo và sử dụng trong JSP 
 Khai báo 
<%@taglib 
 prefix=nnhanh" 
 uri=n/WEB-INF/tlds/CustomTagLibrary" %> 
 Sử dụng 
Ví dụ: SIMPLE CUSTOM TAG 
 B3: Khai báo và sử dụng trong JSP 
Ví dụ: SIMPLE CUSTOM TAG 
Kết quả 
Ví dụ: SIMPLE CUSTOM TAG 
Kết quả 
CUSTOM TAG WITH ATTRIBUTES 
 Custom Tag có thuộc tính 
 Đặc điểm 
• Có một hay nhiều thuộc tính 
• Không có thân 
 Định dạng 
• <prefix:TagName attribute1 =“... ” 
attrhbute2=“...” 
attributeN=“...” 
/> 
 
CUSTOM TAG WITH ATTRIBUTES 
 Các bước xây dựng và sử dụng 
 Bước 1: Tạo lớp Tag Handler Class kế thừa TagSupport 
trong Source Packages 
 Bước 2: Tao Tag Library Descriptor (TLD) mô tả thông tin 
về Simple Custom Tag 
• Có thể mô tả thông tin nhiều Tag 
 Bước 3: Khai báo và sử dụng Custom Tag có thuộc tính 
trong JSP 
 
CUSTOM TAG WITH ATTRIBUTES 
 B1:Tạo Tag Handler Class kế thừa TagSupport 
• Để tạo được Custom Tag có thuộc tính 
<prefix:TagName attribute1="..." attribute2="..." 
... attributeN="..."/> 
• Trong Tag Handler Class 
• Thêm thuộc tính attributel, attribute2,...,atrributeN 
• Thêm các phương thức: 
public void setAttributel (String value1){...} 
public void setAttribute2 (String value2){...} 
public void setAttributeN(String valueN){...} 
 - Cài đặt lại phương thức doStartTag, doEndTag 
 
CUSTOM TAG WITH ATTRIBUTES 
 Bước 1: Tạo lớp Tag Handler Class 
• Trong Tag Handler Class 
• Cài đặt lại doStartTag() 
– Xử lý khi bắt đầu mở Tag 
– Return SKIP_BODY 
• Cài đặt lại doEndTag() 
– Xử lý sau khi kết thúc thân Tag 
– Return EVAL_PAGE 
• Trong doStartTag và doEndTag có thể sử dụng -thuộc 
tính pageContext kế thừa được từ TagSupport 
 
CUSTOM TAG WITH ATTRIBUTES 
 B1:Tạo Tag Handler Class kế thừa TagSupport 
 Một số phương thức hay dùng với pageContext 
 
Đối tượng Phương thức 
out JspWriter getOut() 
session HttpSession getSession() 
request ServletRequest getRequest() 
response ServletResponse getResponse() 
exception Exception getException() 
errorData ErrorData getErrorData() 
page Object getPage() 
config ServletConfig getServletConfig() 
context ServletContext getServletContext() 
CUSTOM TAG WITH ATTRIBUTES 
 B1:Tạo Tag Handler Class kế thừa TagSupport 
 
Thao tác Phương thức 
Include void include(String relativeURLPath) 
Forward void forward(String relativeURLPath) 
CUSTOM TAG WITH ATTRIBUTES 
 B1:Tạo Tag Handler Class kế thừa TagSupport 
 
CUSTOM TAG WITH ATTRIBUTES 
 B1:Tạo Tag Handler Class kế thừa TagSupport 
 
CUSTOM TAG WITH ATTRIBUTES 
 B2: Tạo Tag Library Descriptor (TLD) 
 
CUSTOM TAG WITH ATTRIBUTES 
 B2: Tạo Tag Library Descriptor (TLD) 
• true : Thuộc tính bắt buộc sử dụng 
trong Tag 
• false : Thuộc tính tùy chọn sử dụng 
trong Tag 
• true : Thuộc tính có thể gán giá 
trị bằng JSP Expression 
• false : Thuộc tính không được 
gán giá trị bằng JSP Expression 
• empty : Không có thân 
 
CUSTOM TAG WITH ATTRIBUTES 
 B3: Khai báo và sử dụng trong JSP 
 Khai báo 
<%@taglib prefix=“prefixName" 
 uri="URI TLD” %> 
 Sử dụng 
<prefixName:TagName attribute1="..." 
 attribute2="..." 
 • • • 
 attributeN="..."/> 
 
CUSTOM TAG WITH ATTRIBUTES 
 Lưu ý 
 Truyền dữ liệu là POJO hay mảng POJO cho Custom Tag có thuộc 
tính là POJO hoặc mảng POJO sử dụng 
 POJO 
’ . . . 
 Danh sách POJO 
 ds = .... %> 
’ . . . 
XIN CẢM ƠN! 

File đính kèm:

  • pdfbai_giang_phat_trien_web_voi_java_ee_bai_5_jsp_custom_tag.pdf