1、准备工作:

(1)在一个action中写多个方法:

public class HelloAction {
    public String add(){
        System.out.println("添加");
        return "success";
    }

    public String delete(){
        System.out.println("删除");
        return "success";
    }

    public String update(){
        System.out.println("修改");
        return "success";
    }

    public String selete(){
        System.out.println("查询");
        return "success";
    }
}

(2)为了配置文件的简洁明了,设置两个配置文件,主文件引入另一个配置文件:

<struts>
    <include file="zhb/hello/struts.xml"></include>
</struts>

另外一个配置文件:

<struts>
    <package name="hello" namespace="/hello" extends="struts-default">
        <action name="HelloAction_add" class="pers.zhb.hello.HelloAction" method="add">
            <result name="success">/hello.jsp</result>
        </action>

        <action name="HelloAction_delete" class="pers.zhb.hello.HelloAction" method="delete">
            <result name="success">/hello.jsp</result>
        </action>

        <action name="HelloAction_update" class="pers.zhb.hello.HelloAction" method="update">
            <result name="success">/hello.jsp</result>
        </action>

        <action name="HelloAction_selete" class="pers.zhb.hello.HelloAction" method="selete">
            <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>

这样书写起来比较麻烦。

(3)测试结果:

Struts2配置文件(动态方法调用)_struts

 

 

 Struts2配置文件(动态方法调用)_xml_02

 

 

 2、动态方法调用(方式一):

(1)配置动态方法调用是否开启常量(默认是关闭的):

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
    <package name="hello" namespace="/hello" extends="struts-default">
        <action name="HelloAction" class="pers.zhb.hello.HelloAction">
            <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>

(2)访问方式:

Struts2配置文件(动态方法调用)_配置文件_03

 

 

 Struts2配置文件(动态方法调用)_配置文件_04

 

 

 3、动态方法调用(方式二):

(1)配置文件:

<struts>
    <package name="hello" namespace="/hello" extends="struts-default">
        <action name="HelloAction_*" class="pers.zhb.hello.HelloAction" method="{1}">
            <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>
method="{1}"中的“1”可以取出“*”中的内容。
(2)访问方式:

Struts2配置文件(动态方法调用)_struts_05

Struts2配置文件(动态方法调用)_主文件_06

每个人都会有一段异常艰难的时光 。 生活的压力 , 工作的失意 , 学业的压力。 爱的惶惶不可终日。 挺过来的 ,人生就会豁然开朗。 挺不过来的 ,时间也会教你 ,怎么与它们握手言和 ,所以不必害怕的。 ——杨绛