Struts2 include(包含)多個配置文件
Struts 2自帶有“包含文件”功能,包含多個Struts配置文件合並為一個單元。
單個Struts配置文件
讓我們來看看一個糟糕的 Struts 2 配置示例。
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="default" namespace="/" extends="struts-default"> </package> <package name="audit" namespace="/audit" extends="struts-default"> <action name="WelcomeAudit"> <result>pages/welcome_audit.jsp</result> </action> </package> <package name="user" namespace="/user" extends="struts-default"> <action name="WelcomeUser"> <result>pages/welcome_user.jsp</result> </action> </package> </struts>
在上麵的Struts配置文件中,組織所有“用戶”和“審核”配置設置在一個文件中,這不是建議的,必須回避。應該打破這種形式,而將struts.xml文件分成更小的模塊相關的部分。
多個Struts配置文件
在Struts2,應該給每個模塊一個Struts配置文件。在這種情況下,可以創建三個文件:
- audit-struts.xml – 將所有審計模塊設置在這裡。
- user-struts.xml – 將所有用戶模塊設置在這裡。
- struts.xml – 默認設置,包含 struts-audit.xml 和 Struts-user.xml 兩個文件。
struts-audit.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="audit" namespace="/audit" extends="struts-default"> <action name="WelcomeAudit"> <result>pages/welcome_audit.jsp</result> </action> </package> </struts>
struts-user.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="user" namespace="/user" extends="struts-default"> <action name="WelcomeUser"> <result>pages/welcome_user.jsp</result> </action> </package> </struts>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="default" namespace="/" extends="struts-default"> </package> <include file="conf/user-struts.xml"></include> <include file="conf/audit-struts.xml"></include> </struts>
現在文件夾結構看起來如下: