方法1:
在struts.xml配置
<package name="product" namespace="/product" extends="struts-default">
<action name="list" class="web.action.ProductAction" method="list">
<result>/list.jsp</result>
</action>
<action name="add" class="web.action.ProductAction" method="add">
<result>/add.jsp</result>
</action>
</package>
method属性对应这action中的方法名
方法2:
超链接或提交表单时选择用执行的方法
struts.xml
<package name="product" namespace="/product" extends="struts-default">
<action name="product" class="web.action.ProductAction">
<result>/list.jsp</result>
</action>
</package>
html:
<a href="/product/product!list.action" />
执行ProductAction中的list方法
表单提交
<form action="/product/product!list.action"></form>
实际应用:
基于方法1:{1}
1.让action的name,method和返回的jsp都叫一样的名字
2.struts.xml如下配置
<package name="product" namespace="/product" extends="struts-default">
<action name="{1}" class="web.action.ProductAction" method="{1}">
<result>{1}.jsp</result>
</action>
</package>
当url为/product/list时,{1}就会换成{list},就可以实现调用action中的方法了
需要多个通配符时,可以这样name="{1}_{2}"
基于方法2:!
这个方法配置的action很少,要想返回的视图jsp不能写死,要用这样方法:<result>${params}</result>
action
public class ProductAction extends ActionSupport{
private String result;
public String list{
....
this.setResult("list");
return SUCCESS;
}
}
<package name="product" namespace="/product" extends="struts-default">
<action name="product" class="web.action.ProductAction">
<result>/${result}.jsp</result>
</action>
</package>
${result}会被变为list,最终结果是<result>list.jsp</result>,这样就实现了动态的返回视图jsp
分享到:
相关推荐
在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...
在Struts2中,JavaScript可以用来发起Ajax请求,动态调用后台Action的方法。例如,我们可以使用jQuery的`$.ajax`或`$.post`方法,配合Struts2的ActionContext,将请求参数传递给服务器。在服务器端,Struts2会解析...
默认情况下,Struts 2会调用Action类中的`execute()`方法。 2. **Struts.xml**: 这是Struts 2的配置文件,用于配置Action、拦截器等组件。 3. **Interceptors (拦截器)**: 拦截器用于处理Action执行前后的一系列...
在Struts2中,Action是业务逻辑处理的核心,而通配符的使用则是Struts2框架中一种灵活的配置方式,允许我们以更简洁的方式调用同一个Action中的不同方法。下面我们将深入探讨如何利用Struts2的通配符来实现这一功能...
在 Struts2 中,我们可以使用不同的方式来动态调用 Action 的指定方法,例如使用表单提交、struts.xml 配置、通配符方法等方式。此外,我们还可以配置默认的 Action 和全局结果,以便更好地管理我们的应用程序。
利用Struts 2框架创建一个web项目chap2_e22,实现用户登录过程。具体要求是在loginAction类中分别用login()和registered()处理用户登录和注册的过程,分别创建login.jsp和register.jsp两个页面实现登录和注册的...
下面我们将深入探讨Struts2如何对Action中的所有方法进行校验。 首先,Struts2的校验机制基于两个主要组件:Validator和ValidationInterceptor。Validator负责定义校验规则,而ValidationInterceptor则是在执行...
如果使用表单提交的方式来调用Action,则可以通过表单中的`<input>`标签来传递参数。例如,`<input name="paraName" value="arg0">`表示传递一个名为`paraName`的参数,其值为`arg0`。 #### 总结 通过JavaScript...
但通过`method`属性,我们可以指定特定的请求调用Action类中的不同方法。例如: ```xml <action name="myAction" class="com.example.MyAction"> <result name="saveSuccess">/success.jsp ...
总之,Struts2的`method`属性为开发者提供了更大的灵活性,使我们能够在同一个Action类中定义多个处理方法,根据用户请求动态选择执行,极大地提高了代码的组织和管理效率。在实际开发中,合理利用这一特性可以更好...
本文将重点讨论Struts2中的API耦合和动态方法调用,这两种特性对于理解框架的工作原理和提高代码的灵活性至关重要。 首先,我们来看看Struts2 API耦合的几种方式: 1. **ActionContext类**:ActionContext是Struts...
- 如果只需要传递一个参数,那么在action1中只需定义该参数的getter方法,在action2中则需同时定义getter和setter方法。 2. **使用`redirectAction`类型的结果** 使用`redirectAction`类型的结果同样可以实现...
在Struts2中,动态方法调用基于Action类中的方法名与URL中的参数相匹配的原则。当一个请求到达时,Struts2会解析URL中的方法名(通常是通过在Action名称后加上“!”符号后跟的方法名),然后在对应的Action类中查找...
默认情况下,Struts2会调用Action类中的execute方法来处理请求。但是,通过`method`属性,我们可以指定不同的方法对应不同的Action,这样可以实现一个类中多个方法的映射,提高代码复用性。例如: ```xml <action ...
这个案例“struts014”很可能展示了如何在Struts2中实现异步调用来处理耗时操作,如数据库查询或复杂计算。 异步调用的基本概念是,客户端(通常是Web浏览器)发起一个请求,服务器不立即返回结果,而是启动一个...
- **Action**:在Struts2中,Action是业务逻辑的载体,负责处理用户请求并返回结果。每个Action对应一个特定的用户操作。 - **Result**:Action执行完毕后,会返回一个Result,定义了页面跳转或数据呈现的方式。 ...
Struts2 动态方法调用(DMI,Dynamic Method Invocation)是Struts2框架中一个特色功能,允许开发者通过URL直接调用Action类中的方法,而无需预先在配置文件中显式声明这些方法。这种机制增加了开发的灵活性,但也...
在Struts2中,Action类是处理用户请求的核心组件,一个Action类可以包含多个方法,每个方法对应一个特定的业务逻辑。本资源提供了关于如何在Struts2中操作同一Action的不同方法并进行页面跳转的详细知识,下面将深入...
Struts2会根据URL中的部分替换通配符,并尝试调用Action类中的方法。如果找不到与之匹配的方法,Struts2将会回退到默认的执行方法(通常是`execute`)。 为了更高效地利用这一特性,我们需要遵循以下几点: 1. 方法...
首先,Action配置是Struts2中定义业务逻辑入口的关键,它将HTTP请求映射到特定的Java类方法上。在`struts.xml`中,一个Action配置通常由`<action>`元素定义,包含了多个属性,如`name`、`class`、`method`等。 `...