Struts2.5动态方法调用action和使用通配符访问action

【原帖地址】http://blog.csdn.net/leafage_m/article/details/54577687

动态方法调用Action。

这种方法,需要在struts.xml中对其进行支持:

[html] view plain copy print?
<!-- 是否开启动态方法调用 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />  

当struts.xml中的这个配置的value为true时,代表可以使用动态方法对action进行调用。

然后使用“actionName!methodName“,这种形式:action名字!使用的方法名字  就可以调用不同的方法了。

首先配置struts.xml 添加一个名字为:test的action:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <include file="struts-default.xml"></include>
    <!-- 指定默认编码集 -->
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    <!-- 指定需要Struts2处理的请求后缀 -->
    <constant name="struts.action.extension" value="do,action"></constant>
    <!-- 设置浏览器是否缓存静态内容,开发阶段应关闭,生产阶段打开,默认为打开 -->
    <constant name="struts.serve.static.browserCache" value="false"></constant>
    <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认为false,开发阶段应打开 -->
    <constant name="struts.configuration.xml.reload" value="true"></constant>
    <!-- 开发模式下使用,可以打印出更详细的错误信息 -->
    <constant name="struts.devMode" value="true"></constant>
    <!-- action全部用注解进行配置 -->  

    <!-- 是否开启动态方法调用 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <!--添加包 -->
    <package name="hellostruts" extends="struts-default">
        <action name="test" class="hellostruts.test">
            <result name="success">success.jsp</result>
            <result name="error">error.jsp</result>
            <allowed-methods>login,print</allowed-methods>
        </action>
    </package>
</struts>    

注意:在Struts2.5中必须为想要支持动态访问的method在<allowed-methods>标签中进行描述。

[html] view plain copy print?
<allowed-methods>login,print</allowed-methods>  
时间: 2024-08-05 15:48:13

Struts2.5动态方法调用action和使用通配符访问action的相关文章

struts2.5动态方法调用和默认Action

在动态方法调用中,使用通配符方法出现问题,参考了http://www.cnblogs.com/jasonlixuetao/p/5933671.html 这篇博客,问题解决了. 这个是helloworld.xml: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Co

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

动态方法调用 1.Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量 [html] view plain copy struts.enable.DynamicMethodInvocation = true 2.使用“!”方法,即action名称!方法名称. struts.xml [html] view plain copy <action name="query" class="action.QueryAction"> <result

Struts2之动态方法调用(优点:调用同一个action中的多个方法不需要在配置文件中写多个指向相同action类的的action节点只需要一个action节点就行)

在表单action值里指定所调用的action中的哪个方法而不是借助配置文件action节点的method属性 1 UserAction类 package org.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext;

Struts2中动态方法调用

1 . 查看默认配置,是否为:true 2.如果为false 可以通过struts.xml进行相关的配置:

Struts2动态方法调用(DMI)

在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多 第一种方式:指定method属性这种方式我们前面已经用到过,类似下面的配置就可以实现 <action name="chainAction" class="chapter2.action.Chapter2Action" method="chainAction"> <result name="chai

Struts2动态方法调用怎么写配置

Struts2动态方法调用怎么写配置?可以这样: 1.Struts2入门之 HelloWorld  编写不依赖任何三方包的Action类 按照MVC架构,Action执行完后要返回显示的结果视图,所以,Action中的请求处理方法要返回一个逻辑名称来表示它要显示的结果视图,即方法的 返回值类型为代表逻辑名称的字符串. 在 struts.xml配置文件中配置Action类 struts.xml文件中的配置信息使用package进行分类和管理,不同的包对应不同的url访问路径,即在访问路径上就能区分

struts2的通配符和动态方法调用

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"    "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <

struts2的通配符与动态方法调用

1.Action标签中的method属性 我们知道action默认的执行的方法是execute方法,但是一个action只执行一个方法我们觉得有点浪费,我们希望在一个action中实现同一模块的不同功能.怎么办呢? 思考: 我们是否可以在execute()方法中添加一个判断,然后根据该判断选择我们执行的方法呢?我想struts2也是这样干的.不过是在execute之前的方法中进行的,判断的依据不是通过参数,而是通过取读配置文件或者其他得到的. Struts2在Action中为我们提供了这样的一个

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

一.Struts2执行过程图: 二.struts2配置文件的加载顺序 struts-default.xml---struts-plugin.xml---struts.xml 具体步骤: 三.Action中动态方法调用<Dynamic Method Invocation> DMI 第一种方式: 自定义DMIAction类,使它继承ActionSupport类,该类无需手动重写execute(),底层有默认实现.因此我们也可以自定义方法list. struts.xml中的action元素植入met