浪费别人的时间等于是谋财害命,浪费自己的时间等于是慢性自杀。 —— 列宁

Action的动态调用方法

Action执行的时候并不一定要执行execute方法,我们可以指定Action执行哪个方法:

1、 方法一(通过methed属性指定执行方法)

可以在配置文件中配置Action的时候用method=来指定执行哪个方法

<action name="userAdd" class="com.bjsxt.struts2.user.action.UserAction" method="add">

            <result>/user_add_success.jsp</result>

</action>

    这样,只要在action的对象中有一个add的方法,并且返回类型为String就可以了。如果没有method属性,则默认执行execute()方法。

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

    public String add() {

       return SUCCESS;

    }  

}

2、 动态方法调用DMI(推荐)

可以在url地址中动态指定action执行那个方法。Url地址如下:

方法:action + ! + 方法名

注:只要Action对象中有这个方法,并且返回类型为String就可以调用。

这样Struts.xml配置文件中不需要配置methed属性。代码如下:

<action name="user" class="com.bjsxt.struts2.user.action.UserAction">

       <result>/user_add_success.jsp</result>

</action>

Action类:

public class UserAction extends ActionSupport {

    public String add() {

       return SUCCESS;

    }  

}

    总结:推荐使用第二种动态方法调用DMI,因为第一种需要大量的Action配置,后者可以在url中动态指定执行action中哪个方法。

posted @ 2015-08-05 18:20  一谦的视界  阅读(662)  评论(0编辑  收藏  举报