Action执行的时候并不一定要执行execute方法
1.配置文件中配置Action的时候用method=来指定执行哪个方法
2.在url地址中动态指定(动态方法调用DMI)
3.使用通配符
a.指定method
<a href="<%=context %>/user/userAdd">添加用户</a>
<package name="user" extends="struts-default" namespace="/user">
<action name="userAdd" class="com.wwm.struts2.user.action.UserAction" method="add">
<result>/user_add_success.jsp</result>
</action>
</package>
指定method方式会产生太多的action,所以不推荐使用
b.DMI
<a href="<%=context %>/user/user!add">添加用户</a>
<package name="user" extends="struts-default" namespace="/user">
<action name="user" class="com.wwm.struts2.user.action.UserAction">
<result>/user_add_success.jsp</result>
</action>
</package>
可以发现动态方法调用只需配置一个name为user的action即可
c.通配符
使用通配符,将配置量降到最低,不过,一定要遵守"约定优于配置"的原则
<a href="<%=context %>/actions/Teacher_add">添加老师</a>
<a href="<%=context %>/actions/Teacher_delete">删除老师</a>
<a href="<%=context %>/actions/Course_add">添加课程</a>
<a href="<%=context %>/actions/Course_delete">删除课程</a>
<package name="actions" extends="struts-default" namespace="/actions">
<action name="*_*" class="com.wwm.struts2.action.{1}Action" method="{2}">
<result>/{1}_{2}_success.jsp</result>
</action>
</package>
分享到:
相关推荐
在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...
Struts2的配置文件(struts.xml)可以通过通配符来定义Action,使得一个Action能够处理多个方法调用。例如,我们可以定义一个Action,然后使用不同的参数值来调用不同的Action方法。这样可以减少Action的数量,简化...
默认情况下,Struts 2会调用Action类中的`execute()`方法。 2. **Struts.xml**: 这是Struts 2的配置文件,用于配置Action、拦截器等组件。 3. **Interceptors (拦截器)**: 拦截器用于处理Action执行前后的一系列...
在Struts2中,Action是业务逻辑处理的核心,而通配符的使用则是Struts2框架中一种灵活的配置方式,允许我们以更简洁的方式调用同一个Action中的不同方法。下面我们将深入探讨如何利用Struts2的通配符来实现这一功能...
在 Struts2 中,我们可以使用不同的方式来动态调用 Action 的指定方法,例如使用表单提交、struts.xml 配置、通配符方法等方式。此外,我们还可以配置默认的 Action 和全局结果,以便更好地管理我们的应用程序。
首先,Action配置是Struts2中定义业务逻辑入口的关键,它将HTTP请求映射到特定的Java类方法上。在`struts.xml`中,一个Action配置通常由`<action>`元素定义,包含了多个属性,如`name`、`class`、`method`等。 `...
但通过`method`属性,我们可以指定特定的请求调用Action类中的不同方法。例如: ```xml <action name="myAction" class="com.example.MyAction"> <result name="saveSuccess">/success.jsp ...
利用Struts 2框架创建一个web项目chap2_e22,实现用户登录过程。具体要求是在loginAction类中分别用login()和registered()处理用户登录和注册的过程,分别创建login.jsp和register.jsp两个页面实现登录和注册的...
在Struts2框架中,动态方法调用是一个非常实用且...要在Struts2中启用动态方法调用,首先需要在`struts.xml`配置文件中正确配置Action。在示例代码中,虽然没有给出具体的`struts.xml`配置,但通常配置如下: ```xml ...
如果使用表单提交的方式来调用Action,则可以通过表单中的`<input>`标签来传递参数。例如,`<input name="paraName" value="arg0">`表示传递一个名为`paraName`的参数,其值为`arg0`。 #### 总结 通过JavaScript...
默认情况下,Struts2会调用Action类中的execute方法来处理请求。但是,通过`method`属性,我们可以指定不同的方法对应不同的Action,这样可以实现一个类中多个方法的映射,提高代码复用性。例如: ```xml <action ...
这个例子中,当用户请求"logon.action"时,Struts2会实例化`tutorial.Logon`类并调用其`execute()`方法。如果执行成功,结果类型为"redirect-action",用户会被重定向到"Menu";如果执行失败,显示"Logon.jsp"。 2...
总的来说,Struts2提供了灵活且强大的数据校验机制,无论是在XML配置文件中定义,还是利用注解,甚至自定义校验逻辑,都能有效地保证Action中各个方法的输入数据合法,从而提高应用程序的稳定性和安全性。...
Struts2支持基于注解的Action配置,可以直接在Action方法上使用注解定义请求路径、结果类型等。同时,也可以通过XML配置文件来定义Action的属性。 总结来说,Struts2是一个强大的MVC框架,它通过非侵入式设计、拦截...
在传统的Struts2配置中,一个Action通常对应一个方法,通过URL路径与Action名进行绑定。然而,当业务需求变得复杂时,这样的设计可能不够灵活。`method`属性的引入,使得我们可以根据用户请求中的参数来决定执行哪个...
3. `org.apache.struts2.dispatcher`:这是Struts2的核心包,其中包含Dispatcher类,它负责初始化以及调用Action的execute()方法。 4. `org.apache.struts2.impl`:扩展了XWork的核心功能,定义了StrutsActionProxy...
4. **XML配置**:Struts2的配置文件(struts.xml)用于定义Action、结果类型、拦截器等。为了支持异步调用,可能需要在这里声明特定的结果类型,比如JSON或FreeMarker模板,以便返回状态信息。 5. **结果类型...
Struts2会根据URL中的部分替换通配符,并尝试调用Action类中的方法。如果找不到与之匹配的方法,Struts2将会回退到默认的执行方法(通常是`execute`)。 为了更高效地利用这一特性,我们需要遵循以下几点: 1. 方法...
总结来说,Struts2的Action多方法配置使得我们能够灵活地组织业务逻辑,而其内置的验证机制则确保了数据的准确性和安全性。通过深入理解并熟练运用这些特性,开发者可以创建出高效、健壮的Java web应用。