Struts2配置文件——动态方法调用

Posted Dream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2配置文件——动态方法调用相关的知识,希望对你有一定的参考价值。

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)测试结果:

 

 

 

 

 

 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)访问方式:

 

 

 

 

 

 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配置文件——动态方法调用的主要内容,如果未能解决你的问题,请参考以下文章

Struts2 Action中动态方法调用通配符的使用

Struts2系列:通配符和动态方法调用

Struts2中动态方法调用

struts2.5新配置动态调用

struts2笔记09-动态方法调用

struts2的动态方法调用(DMI)和通配符映射