动态方法调用,structs2动态调用

作用:减少Action数量

Structs2动态方法调用,structs2动态调用

第一种:指定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>

 

第一种:指定Method属性(Action比较多) !– 声明包 — package name=”user”
extends=”struts-default” !– 定义action –…

使用:actionName!methodName.action

禁用:将属性struts.enable.DynamicMethodInvocation设置为false(默认,开启动态方法开关)

方法一:

<constant name=”struts.enable.DynamicMethodInvocation”
value=”true”/>  //开启动态开关

<action name=”user” class=”类的全路径名”>

    <result name=”(唯一的)返回字符串”>jsp地址</result>

    <result
name=”(唯一的)返回字符串”>jsp地址</result>

发表评论

电子邮件地址不会被公开。 必填项已用*标注