Ứng dụng Struts gồm hai file cấu hình chính là struts.xml file và struts.properties file. Struts.properties file được sử dụng để ghi đè các giá trị mặc định của default.xml file đã được cung cấp bởi Struts Framwork, vì thế nó là không bắt buộc. Hầu như bạn không phải sử dụng file này. Chúng ta sẽ tìm hiểu về chúng sau.
Đầu tiên bạn theo dõi ví dụ đơn giản về struts.xml file:
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<struts>
<package name="default" extends="struts-default">
<action name="product" class="com.hoclaptrinh.Product">
<result name="success">welcome.jsp</result>
</action>
</package>
</struts>
Chúng ta có thể phân chia ứng dụng struts thành các module con. Phần tử package xác định một module. Bạn có thể có một hoặc nhiều package trong struts.xml file. Phần tử package này có các thuộc tính sau:
/action name.action
Nếu bạn xác định bất cứ namespace nào, thì bạn cần URI sau:
/namespaceName/actionName.action
Thuộc tính extends: Nói chung, phần tử package kế thừa struts-default package, tại đây định nghĩa các Interceptor và Result type. Nếu bạn kế thừa struts-default, tất cả action của package này có thể sử dụng các Interceptor và Result type đã được định nghĩa trong struts-default.xml file.
Phần tử action là phần tử con của package và biểu diễn một action. Phần tử action này có các thuộc tính sau:
<action name="product">
Thuộc tính method là tùy ý. Nếu bạn không xác định thuộc tính method, thì phương thức execute được xem như là phương thức của lớp action. Do đó, code này:
<action name="product" class="com.hoclaptrinh.Product">
Là giống như:
<action name="product" class="com.hoclaptrinh.Product" method="execute">
Nếu bạn muốn triệu hồi một phương thức nào đó của action, bạn cần sử dụng thuộc tính trong Python.
Đây là phần tử con của action, nó xác định nơi để chuyển tiếp request cho action này. Thuộc tính result có các thuộc tính sau:
Cũng có nhiều phần tử khác như global-exception-mappings, global-results, include, … và chúng ta sẽ tìm hiểu chúng sau.
Unpublished comment
Viết câu trả lời