`

action动态方法调用和使用通配符定义action

阅读更多

一。动态方法调用

如果Action中存在多个方法时,我们可以使用!+方法名调用指定方法。如下:

public class HelloWorldAction{
	private String message;
	....
	public String execute() throws Exception{
		this.message = "我的第一个struts2应用";
		return "success";
	}
	
	public String other() throws Exception{
		this.message = "第二个方法";
		return "success";
	}
}

 假设访问上面action的URL路径为: /struts/test/helloworld.action要访问action的other() 方法,我们可以这样调用:
/struts/test/helloworld!other.action

通常不建议大家使用动态方法调用,我们可以通过常量struts.enable.DynamicMethodInvocation关闭动态方法调用。如下所示:

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

 二。使用通配符定义action

action代码如下所示:

public class HelloWorldAction{
	private String message;
	....
	public String execute() throws Exception{
		this.message = "我的第一个struts2应用";
		return "success";
	}
	
	public String other() throws Exception{
		this.message = "第二个方法";
		return "success";
	}
}

 配置文件如下:

<package name="itcast" namespace="/test" extends="struts-default">
	<action name="helloworld_*" class="cn.itcast.action.HelloWorldAction" method="{1}">
		<result name="success">/WEB-INF/page/hello.jsp</result>
	</action>
</package>

 其中的helloworld_*中的下划线(_)并不是必须的,因为helloworld_*中只有一个通配符*,所以method="{1}",也可以是helloworld_*_*,则method="{1}_{2}",class和result中也可以使用通配符的值,如:class="cn.itcast.action.{1}HelloWorldAction",    <result name="success">/WEB-INF/page/{1}hello.jsp</result>.

此时要访问action中的other()方法,可以通过这样的URL访问:/test/helloworld_other.action

分享到:
评论
1 楼 北京麦田的守望者 2012-02-16  
继续努力哦

相关推荐

    struts2动态调用之通配符

    通配符动态调用的关键在于正确地解析和调用方法。Struts2会根据URL中的部分替换通配符,并尝试调用Action类中的方法。如果找不到与之匹配的方法,Struts2将会回退到默认的执行方法(通常是`execute`)。 为了更高效...

    Struts2动态方法调用

    Struts2的配置文件(struts.xml)可以通过通配符来定义Action,使得一个Action能够处理多个方法调用。例如,我们可以定义一个Action,然后使用不同的参数值来调用不同的Action方法。这样可以减少Action的数量,简化...

    struts2利用通配符调用同一个Action里面不同的方法

    在Struts2中,Action是业务逻辑处理的核心,而通配符的使用则是Struts2框架中一种灵活的配置方式,允许我们以更简洁的方式调用同一个Action中的不同方法。下面我们将深入探讨如何利用Struts2的通配符来实现这一功能...

    struts2笔记之动态调用Action指定方法及默认Action

    在 Struts2 中,我们可以使用不同的方式来动态调用 Action 的指定方法,例如使用表单提交、struts.xml 配置、通配符方法等方式。此外,我们还可以配置默认的 Action 和全局结果,以便更好地管理我们的应用程序。

    传智播客struts2.1源代码_动态方法

    本文将深入探讨Struts2.1中的动态方法调用和使用通配符定义这两个关键知识点。 首先,让我们理解动态方法调用的概念。在传统的Struts2框架中,Action类的方法与HTTP请求的URL路径直接关联。然而,动态方法调用允许...

    struts中动态方法调用使用通配符

    动态方法调用是Struts中的一种机制,它允许在不预先定义每个具体方法的情况下,通过Action类的方法名来执行不同的业务逻辑。通常有三种方式实现DMI: 1. 改变表单中`action`属性,使不同的提交按钮对应不同的方法。...

    详解Struts2动态方法调用

    Struts2 框架提供了动态方法调用的机制,允许一个 Action 对应多个请求,从而减少 Action 的数量。这种机制可以提高系统的灵活性和可维护性。 方法一:指定 Method 属性 在 Struts2 中,我们可以通过指定 Method ...

    Struts2_Action学习笔记、通配符{1},{2}

    因此,推荐使用动态调用方式: - URL格式:`http://localhost:8080/xxx/user/user!method` - 示例:`http://localhost:8080/xxx/user/user!add`,其中`user!add`指定了要调用的方法。 #### 五、通配符配置 通配符...

    struts2.5+框架使用通配符与动态方法常见问题小结

    例如,我们可以使用动态方法来调用Action类中的方法,如下所示: ${pageContext.request.contextPath }/test!query" rel="external nofollow" &gt;DynamicMethodInvocation 在上面的示例中,我们使用动态方法来调用...

    struts2 通配符配置

    在Struts2中,通配符配置是一项强大的功能,它允许开发者以更灵活的方式定义Action映射,从而提高代码的复用性和配置的简洁性。这篇博客可能详细解释了如何在Struts2框架中使用通配符配置来简化Action配置。 通配符...

    struts2一个action处理多个请求 struts2实例

    如果不想在XML配置文件中硬编码方法名,可以使用动态方法调用。请求URL中的部分可以动态解析为Action类中的方法名。比如,`myAction/save`会调用`save()`方法。 5. **注解配置** 除了XML配置,Struts2还支持使用...

    struts2通配符示例代码

    通配符映射的优势在于简化配置和提高代码复用,但过度使用可能导致Action逻辑过于复杂,不易维护。因此,应根据实际需求权衡使用。 通过以上解释,我们可以看出Struts2的通配符映射是其强大特性之一,它可以提高...

    struts2通配符的使用详解

    ### Struts2中通配符使用详解 #### 一、引言 在Web开发中,Struts2框架凭借其灵活性和强大的功能深受开发者喜爱。...因此,在实际开发中需要权衡利弊,合理选择是否使用通配符以及如何使用通配符。

    Struts2通配符

    `Action`接口定义了一个`execute()`方法,所有的业务逻辑都需要在这个方法中实现。例如: ```java public interface Action { public String execute() throws Exception; } ``` 在实际开发中,我们通常会继承`...

    struts2 action的三种访问方式

    本篇文章将详细介绍Struts2 Action的三种访问方式:传统方式、通配符方式和动态方式。 1. **传统方式(Static Dispatch)** 传统方式是最基础的Action访问方式,通过硬编码URL来映射Action。在`struts.xml`配置...

    struts2的学习笔记+测试源代码

    在Struts2配置文件中,你可以使用通配符(*)来定义一个Action配置,这样可以匹配多个Action方法。例如,配置如下: ``` &lt;action name="user_*" class="com.example.UserAction"&gt; &lt;result&gt;/result.jsp &lt;/action...

    Struts2 处理多个请求

    总结来说,Struts2通过动态方法调用、通配符映射和拦截器+`@Action`注解等方式,提供了灵活的多请求处理能力,使Action类能够更好地组织和管理不同的业务逻辑。开发者可以根据项目需求和代码可维护性选择适合的方法...

    传智播客struts2.1视频教程_源代码_Action名称的搜索顺序

    3. **动态方法调用(Dynamic Method Invocation,DMI)**:如果配置文件中也没有通配符匹配,Struts2会尝试使用动态方法调用来解析Action。它将URL中的部分作为Action类的方法名进行调用。比如,URL为`/myMethod/...

    struts2 action 配置方法 &&struts2的配置文件

    这个例子中,当用户请求"logon.action"时,Struts2会实例化`tutorial.Logon`类并调用其`execute()`方法。如果执行成功,结果类型为"redirect-action",用户会被重定向到"Menu";如果执行失败,显示"Logon.jsp"。 2...

Global site tag (gtag.js) - Google Analytics