为了使用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