第一种:指定Method属性(Action比较多)
<!-- 声明包 -->
<package name="user" extends="struts-default">
<!-- 定义action -->
<action name="first" class="com.sxt.action.UserAction" method="first" >
<!-- 定义处理成功后的映射页面 -->
<result name="first">first.jsp</result>
</action>
<action name="second" class="com.sxt.action.UserAction" method="second" >
<result name="second">second.jsp</result>
</action>
<action name="third" class="com.sxt.action.UserAction" method="third" >
<result name="third">first.jsp</result>
</action>
</package>
第二种:感叹号方式(需要开启开关)官网不推荐使用这种方式
(1)Structs2中开启开关和定义Action
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<action name="userAction" class="com.sxt.action.UserAction">
<!-- 定义处理成功后的映射页面 -->
<result name="add">user_add.jsp</result>
<result name="update">user_update.jsp</result>
</action>
(2)index.jsp中
<a href="userAction!add">添加用户</a>
<a href="userAction!update">修改用户</a>
(3)创建名为UserAction的Action对象
public class UserAction extends ActionSupport {
public String add(){
return "add";
}
public String update(){
return "update";
}
}
第三种:通配符方式(官方推荐使用)
(1)jsp页面中
<a href="useraddAction">添加用户</a>
<a href="userupdateAction!">修改用户</a>
(2)Structs2.xml中定义Action
<action name="user*Action" class="com.sxt.action.UserAction" method="{1}">
<!-- 定义处理成功后的映射页面 -->
<result name="add">user_add.jsp</result>
<result name="update">user_update.jsp</result>
</action>