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

一、Struts2执行过程图:



二、struts2配置文件的加载顺序

struts-default.xml---struts-plugin.xml---struts.xml

具体步骤:















三、Action中动态方法调用<Dynamic Method Invocation> DMI

第一种方式:

自定义DMIAction类,使它继承ActionSupport类,该类无需手动重写execute(),底层有默认实现。因此我们也可以自定义方法list。

struts.xml中的action元素植入method调用前台返回的方法list

若一个类中有多个方法,在struts.xml中需植入多个action元素,因此该方法的安全性低



第二种方式:

在struts.xml中开启动态方法调用,即可使用一个action,并通过在Action的名称中使用感叹号(!)来标识要调用的方法名称

       /*
	 * 添加图书
	 */
	public String add() throws Exception {
		System.out.println("======add====");
		return "add";
	}

	/*
	 * 删除图书
	 */

	public String del() throws Exception {
		System.out.println("======del====");
		return "del";
	}

	/*
	 * 修改图书
	 */
	public String edit() throws Exception {
		System.out.println("======edit====");
		return "edit";
	}

  

执行效果:



四、Action中通配符的使用

通配符用星号(*)表示,用于配置0个或多个字符串,在配置Action时,可以在action元素的name属性中使用星号来匹配任意的字符串

实现效果:

时间: 2024-12-26 22:00:52

Struts2 Action中动态方法调用、通配符的使用的相关文章

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

01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问ServletAPI时实现用户会话跟踪,其简单的程序运行流程图如下 Struts2框架是基于MVC模式.基于MVC模式框架的核心就是控制器对所有请求进行统一处理.Struts2的控制器StrutsPrepareAndExecuteFilter由ServletAPI中的Filter充当,当web容器的接收到登录

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

   Action中动态方法的调用 动态方法调用(Dynamic Method Invocation,DMI) 标识符:! 一.通过以下选中的文件来查看是否禁止调用动态方法 二.在我们自定义的action类中,我们不再单一的继承来自父类的方法,我们可以自定义自己的方法 1 package cn.jbit.booklist; 2 3 import com.opensymphony.xwork2.ActionSupport; 4 5 public class BookList extends Act

struts2学习笔记(4)---------action中的方法调用

系统需要使用Action的不同方法来处理用户请求,这就需要让同一个Action里面包含多个控制处理逻辑. 1)动态方法调用 即DMI(dynamic method invocation),使用actionName!methodName的形式来指定想要调用的方法,如果想使用DMI,需要在struts.xml里面加入这句话: <constant name="struts.enable.DynamicMethodInvocation" value="true" /&

Struts2的DMI动态方法调用

Struts2的DMI动态方法调用:!后面跟方法名 struts.xml里要加<constant name="struts.enable.DynamicMethodInvocation" value="true"/> 因为有的版本默认是false

Struts2学习四----------动态方法调用

? 版权声明:本文为博主原创文章,转载请注明出处 Struts2动态方法调用 - 默认:默认执行方法中的execute方法,若指定类中没有该方法,默认返回success <package name="default" extends="struts-default" namespace="/"> <action name="add" class="org.struts.dynamicmethod.a

Struts2中动态方法调用

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

struts2使用!动态方法调用无效,报错

前几天一直在复习stuts2框架的使用,就自己打了一个小程序测试, 不过在开发过程中,出现了一个问题,那就是使用!访问的时候,会报异常: Struts Problem Report Struts has detected an unhandled exception: Messages: There is no Action mapped for namespace [/user] and action name [user!add] associated with context path [

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

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

Struts2动态方法调用(DMI)

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