01_5_Struts_ActionMethod_DMI_动态方法调用

01_5_Struts_ActionMethod_DMI_动态方法调用

1. ActionMethod_DMI_动态方法调用

Action执行的时候并不一定要执行execute()方法

可以在配置文件中配置Action的时候用method=来指定执行哪个方法 也可以在url地址中动态指定(动态方法调用DMI)

2. 第一种方式

2.1配置struts.xml文件

<package name="user" namespace="/user" extends="struts-default">

<action name="user" class="com.sumapay.user.UserAction" method="add">

<!-- method定义会去调用UserAction中的add方法,而不是默认的execute()方法

方法中return返回的字符串,根据result标签中的name,返回响应的jsp页面-->

<result name="success">

/AddUser.jsp

            </result>

            <result name="add">

            /AddUserSuccess.jsp

            </result>

</action>

</package>

2.2创建相应的Action

package com.sumapay.user;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

private static final long serialVersionUID = 1L;

public String add() {

return "add";

}

public String execute() {

return "success";

}

}

3第二种方式

3.1配置struts.xml文件

<package name="user" namespace="/user" extends="struts-default">

<action name="user" class="com.sumapay.user.UserAction">

<result name="add">

/AddUser.jsp

            </result>

            <result name="success">

/AddUserSuccess.jsp

            </result>

</action>

</package>

3.2调用方式

http://127.0.0.1:8080/Struts2_0100_Introduction/user/user!execute

###调用UserAction类中的execute方法

http://127.0.0.1:8080/Struts2_0100_Introduction/user/user!add

###调用UserAction类中的add方法

原文地址:https://www.cnblogs.com/flyback/p/8644991.html