为了使用Struts.xml更简洁,更利于维护,我们可以把Struts.xml要配置的Action信息分类别放在其他的XML文件中,使用include在struts.xml中加载这些文件;
将Web.xml中的filter-mapping拦截设置为拦截所有url:
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
首先是struts.xml
<struts> <constant name="struts.action.extension" value="do"></constant> <constant name="struts.118n.encoding" value="UTF-8"></constant> <include file="employee.xml"></include> <include file="user.xml"></include> </struts>
然后分别配置这两个xml文件:
<struts> <package name="employeePackage" namespace="/col/employee" extends="struts-default" > <action name="employee_*" class="cn.actions.EmployeeAction" method="{1}" > <param name="message">员工</param> <result name="message">/WEB-INF/pages/message.jsp</result> </action> </package> </struts>
<struts> <package name="userPackage" namespace="/col/user" extends="struts-default" > <action name="user_*" class="cn.actions.UserAction" method="{1}" > <param name="message">用户</param> <result name="message">/WEB-INF/pages/message.jsp</result> </action> </package> </struts>
public class EmployeeAction { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String view(){ return "message"; } }
Message.jsp页面:
<body> ${message } </body>
http://localhost:9000/Struts21/col/user/user_view.do
http://localhost:9000/Struts21/col/employee/employee_view.do