Ví dụ đa cấu hình file trong Struts 2
Với một ứng dụng lớn, sử dụng đa cấu hình file là tốt hơn khi chỉ cấu hình một file, để việc quản lý ứng dụng dễ dàng hơn. Bạn có thể tạo nhiều file cấu hình nhưng bạn cần định nghĩa nó trong struts.xml file. Phần tử con include của struts được sử dụng để định nghĩa file cấu hình được hỗ trợ. Dưới đây là ví dụ để tạo nhiều file cấu hình.
Bước 1: Định nghĩa entry của nhiều file cấu hình trong struts.xml
Trong struts.xml file này, chúng ta định nghĩa hai file cấu hình là struts-first.xml file và struts-second.xml file. Trong đó, struts-first.xml được đặt bên trong thư mục đầu tiên và struts-second.xml được đặt bên trong thư mục thứ hai.
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="default1" namespace="/" extends="struts-default"> </package> <include file="first/struts-first.xml"></include> <include file="second/struts-second.xml"></include> </struts>
Bước 2: Tạo các file cấu hình
Giờ chúng ta tạo hai file cấu hình mà định nghĩa action với các result.
struts-first.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="first" namespace="/first" extends="struts-default"> <action name="hello" class="com.vietjack.Welcome"> <result>welcome.jsp</result> </action> </package> </struts>
struts-second.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="second" namespace="/second" extends="struts-default"> <action name="hello" class="com.vietjack.Welcome"> <result>welcome.jsp</result> </action> </package> </struts>
Các resource cần thiết khác
Để chạy ứng dụng này, bạn cần các resource sau:
index.jsp: JSP page này tạo hai link.
<a href="first/hello">first namespace</a>| <a href="second/hello">second namespace</a>
Lớp Action
Trong lớp Action đơn giản chỉ chứa phương thức execute.
welcome.java
package com.vietjack; public class Welcome { public String execute(){ return "success"; } }
Hai thành phần view
Tên của hai thành phần view là giống nhau, là welcome.jsp, nhưng cả hai được đặt ở vị trí khác nhau.
welcome.jsp: Nó được đặt bên trong thư mục đầu tiên dưới root.
<h1>Welcome to first namespace</h1>
welcome.jsp: Nó được đặt bên trong thư mục thứ hai dưới root.
<h1>Welcome to second namespace</h1>