在Struts2的配置文件中,可以采用分模块的方法来配置,在功能复杂的系统中,使用分模块方法,可以使结构更清晰。
例如:
下面,有车辆模块以及资产模块,将其分为两个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="cheliang" namespace="/cheliang" extends="struts-default"> <action name="cheliang" class="com.mrlv.action.CheLiangAction"> <result name="success">${pageContext.request.contextPath}/success.jsp</result> </action> </package> </struts>
<?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="zichan" namespace="/zichan" extends="struts-default"> <action name="zichan" class="com.mrlv.action.ZiChanAction"> <result name="success">${pageContext.request.contextPath}/success.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> <include file="cheliang.xml"></include> <include file="zichan.xml"></include> </struts>
如此项目结构就更加清晰了。
接下来是使用通配符和动态方法。
首先创建index.jsp页面。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>通配符</h1> <a href="student_list" target="_blank">学生信息查询</a> <a href="student_add" target="_blank">学生信息添加</a> <a href="student_update" target="_blank">学生信息修改</a> <a href="student_delete" target="_blank">学生信息删除</a> <br/><br/> <a href="grade_list" target="_blank">班级信息查询</a> <a href="grade_add" target="_blank">班级信息添加</a> <a href="grade_update" target="_blank">班级信息修改</a> <a href="grade_delete" target="_blank">班级信息删除</a> <br/> <!-- --> <h1>动态方法调用</h1> <a href="student!list" target="_blank">学生信息查询</a> <a href="student!add" target="_blank">学生信息添加</a> <a href="student!update" target="_blank">学生信息修改</a> <a href="student!delete" target="_blank">学生信息删除</a> <br/><br/> <a href="grade!list" target="_blank">班级信息查询</a> <a href="grade!add" target="_blank">班级信息添加</a> <a href="grade!update" target="_blank">班级信息修改</a> <a href="grade!delete" target="_blank">班级信息删除</a> <br/> </body> </html>
创建好jsp页面后,写Action,如下:
package com.mrlv.action; import com.opensymphony.xwork2.ActionSupport; public class StudentAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public String list()throws Exception{ System.out.println("学生查找"); name="学生查找"; return SUCCESS; } public String add()throws Exception{ System.out.println("学生添加"); name="学生添加"; return SUCCESS; } public String update()throws Exception{ System.out.println("学生修改"); name="学生修改"; return SUCCESS; } public String delete()throws Exception{ System.out.println("学生删除"); name="学生删除"; return SUCCESS; } }
注意:这里的方法命名是有规范的。
接下来配置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> <include file="cheliang.xml"></include> <include file="zichan.xml"></include> <package name="manage" namespace="/" extends="struts-default"> <action name="student_*" class="com.mrlv.action.StudentAction" method="{1}"> <result name="success">success.jsp</result> </action> <action name="grade_*" class="com.mrlv.action.GradeAction" method="{1}"> <result name="success">success.jsp</result> </action> <!-- 更加方便的写法,不过这个写法需要将jsp页面的href的第一个字母大写,这也是命名规范的原因 <action name="*_*" class="com.java1234.action.{1}Action" method="{2}"> <result name="success">success.jsp</result> </action> --> </package> <!-- 开启动态方法调用:--> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> </struts>
接下来,将项目跑起来。
如此。便是运行成功了。