struts.xml的配置
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">
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
" http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
<include file="example.xml"/>
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
<include file="example.xml"/>
<!-- Add packages here -->
</struts>
example.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">
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
" http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="example" namespace="/example" extends="struts-default">
<action name="HelloWorld" class="helloWorld">
<result>/example/HelloWorld.jsp</result>
</action>
<result>/example/HelloWorld.jsp</result>
</action>
<action name="Login_*" method="{1}" class="login">
<result name="input">/example/Login.jsp</result>
<result type="redirect-action">Menu</result>
</action>
<action name="Person_*" method="{1}" class="person" >
<result name="show">/example/personShow.jsp</result>
<result name="update">/example/personUpdate.jsp</result>
<result name="input">/example/index.html</result>
<result name="list">/example/personList.jsp</result>
<result name="add">/example/personAdd.jsp</result>
</action>
<result name="input">/example/Login.jsp</result>
<result type="redirect-action">Menu</result>
</action>
<action name="Person_*" method="{1}" class="person" >
<result name="show">/example/personShow.jsp</result>
<result name="update">/example/personUpdate.jsp</result>
<result name="input">/example/index.html</result>
<result name="list">/example/personList.jsp</result>
<result name="add">/example/personAdd.jsp</result>
</action>
<action name="*" class="exampleSupport">
<result>/example/{1}.jsp</result>
</action>
<!-- <action name="PersonList" class="person" method="list">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonAdd" class="person" method="add">
<result name="add">/example/personAdd.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonSave" class="person" method="save">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonShow" class="person" method="show">
<result name="show">/example/personShow.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonUpdate" class="person" method="update">
<result name="update">/example/personUpdate.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonDelete" class="person" method="delete">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonMerge" class="person" method="merge">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action> -->
<!-- Add actions here -->
</package>
</struts>
<result>/example/{1}.jsp</result>
</action>
<!-- <action name="PersonList" class="person" method="list">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonAdd" class="person" method="add">
<result name="add">/example/personAdd.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonSave" class="person" method="save">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonShow" class="person" method="show">
<result name="show">/example/personShow.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonUpdate" class="person" method="update">
<result name="update">/example/personUpdate.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonDelete" class="person" method="delete">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonMerge" class="person" method="merge">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action> -->
<!-- Add actions here -->
</package>
</struts>
二 相关说明
(1) struts2.xml的说明:为了支持多个人协同工作。我们在struts2.xml中利用include包含多个配置文件。你可以为你的团队中的每一个人定义一个 name.xml.同样,如果一个项目是由几个子项目组成的,也可以为每个子项目定义一个 project.xml。在这儿我们包含了一个子项目 example.xml
(2)example.xml的相关说明:
首先 <package name="example" namespace="/example" extends="struts-default">
是必需的。name与namespace是必需的 ,name用来标示一个actionmapping,namespace表明该actionmapping下定义的action的域名空间,同时所有以/exmaple 开始的请求都会通过该actionmapping进行调配!
(3) class的值的说明。如果仅仅是采用struts2 框架,你必需指明类的合法全名。但是我们结合spring使用。于是你需要指明该class是spring哪一个bean的实例。也就是说class的值与bean的ID匹配。(匹配方式不止一种)
(4)一般来说 一个action负责对数据库的表CRUD。我对数据库中的一个表person 定义了 list() ,save(),merge() ,update(), show()几个方法。
在配置文件中。每一个action都有一个 可选的method的方法,它允许你指明调用该action的哪一个方法(如果不指明,就是调用excuete() 方法)。
配置文件有两种书写方式:
a;
<action name="Person_*" method="{1}" class="person" >
<result name="show">/example/personShow.jsp</result>
<result name="update">/example/personUpdate.jsp</result>
<result name="input">/example/index.html</result>
<result name="list">/example/personList.jsp</result>
<result name="add">/example/personAdd.jsp</result>
</action>
<result name="show">/example/personShow.jsp</result>
<result name="update">/example/personUpdate.jsp</result>
<result name="input">/example/index.html</result>
<result name="list">/example/personList.jsp</result>
<result name="add">/example/personAdd.jsp</result>
</action>
action的那么中有 * 通配符。 同时定义 method={1}。我们如果调用
/exmple/Person_list.action 。那么经过匹配会产生两个参数:{Person,list} method ={1},表明采用下标1的参数,也就是list
注意: 网上有人推荐使用 Person!list.action,我经过试验无法走通!也许他们是受webwork的影响所致.
b: 采用这种方式
<action name="PersonList" class="person" method="list">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonAdd" class="person" method="add">
<result name="add">/example/personAdd.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonSave" class="person" method="save">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonShow" class="person" method="show">
<result name="show">/example/personShow.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonUpdate" class="person" method="update">
<result name="update">/example/personUpdate.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonDelete" class="person" method="delete">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonMerge" class="person" method="merge">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonAdd" class="person" method="add">
<result name="add">/example/personAdd.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonSave" class="person" method="save">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonShow" class="person" method="show">
<result name="show">/example/personShow.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonUpdate" class="person" method="update">
<result name="update">/example/personUpdate.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonDelete" class="person" method="delete">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
<action name="PersonMerge" class="person" method="merge">
<result name="list">/example/personList.jsp</result>
<result name="input">/example/index.html</result>
</action>
不用多解释了.重复而且繁琐了, 推荐使用第一种方式!