Tích hợp Struts 2 với Tiles



Bạn có thể tùy chỉnh Layout của ứng dụng Struts 2 bởi tích hợp với Tiles Framework. Một webpage có thể gồm nhiều phần (được biết như là các tile) như header, cạnh trái, cạnh phải, phần thân, phần footer, … Trong Tiles Framework, chúng ta quản lý tất cả các tile bởi Layout Manager của chúng ta.

Các bước để tạo ứng dụng Tiles:

  • Thêm tiles library vào trong ứng dụng của bạn.

  • Định nghĩa Struts2TilesListener trong web.xml file

  • Tạo index.jsp

  • Tạo lớp action

  • Kế thừa tiles-default package trong package của bạn và định nghĩa tất cả result type dưới dạng các tile trong struts.xml file.

  • Tạo tiles.xml file và định nghĩa tất cả các tile.

  • Tạo LayoutManager page.

  • Tạo các thành phần View.

1. Thêm tiles library vào trong ứng dụng của bạn

Nếu bạn đang sử dụng myeclipse IDE, bạn có thể thêm tiles library bởi nhấn chuột phải vào project > Build Path > Add Library > Add Myeclipse Library > Select the Struts 2 tiles library > ok.

2. Định nghĩa Struts2TilesListener trong web.xml file

Cung cấp entry của lớp Struts2TilesListener trong web.xml file.

web.xml



  
    index.jsp
  
  
   struts2
   
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
   
  
  
  	struts2
  	/*
  
  
  
  org.apache.struts2.tiles.StrutsTilesListener
  
  
 

3. Tạo index.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>




4. Tạo lớp action

Lớp action này chứa một tên trường và định nghĩa phương thức execute.

Login.java

package com.vietjack;public class Login {
private String name,password;//phuong thuc getter va setterpublic String execute(){
if(password.equals("admin")){
	return "success";
}
else{
	return "error";
}
}
}

5. Kế thừa tiles-default package trong package của bạn và định nghĩa tất cả result type dưới dạng các tile trong struts.xml file

xml file này định nghĩa một package với một action và hai result.

struts.xml





login-success
login-error

 

 

6. Tạo tiles.xml file và định nghĩa tất cả các tile

tiles.xml file phải được đặt bên trong thư mục WEB-INF.

tiles.xml

  
   
    
    
    
   
   
    
    
    
    
   

7. Tạo LayoutManager page

Nó sử dụng thẻ getAsString của Tiles để bao string resource và thẻ insertAttribute của Tiles để bao page resource.

layoutmanager.jsp

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>



<tiles:getAsString name="title" />

<%@  include file="header.jsp" %>

<%@ include file="footer.jsp" %>
 

8. Tạo các thành phần View

Có nhiều thành phần view như header.jsp, footer.jsp, welcome.jsp, …

header.jsp

It is header tile


footer.jsp


It is footer tile

login-success.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>Welcome, 

login-error.jsp

Xin loi, xay ra loi voi username hoac password ban nhap vao!

Cách định nghĩa nhiều tiles file trong ứng dụng Struts 2

Để định nghĩa nhiều tiles, bạn cần thêm entry sau trong web.xml file.


 org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
 /WEB-INF/tiles1.xml,/WEB-INF/tiles2.xml