当structs.xml解析到Action的时候,默认执行的是此action的execute()方法,但是实际开发中,我们的action中含有很多方法,比如说增删改查的方法,那么structs.xml怎样辨别不同的方法,然后给我们指向正确的方法呢?下面主要介绍三种方法,最后的方法是推荐的方法,前两种作为八卦大家看看即可。

方法一,通过method属性来访问

  通过指定methord方法来实现,比如下面

  浏览器中我们要访问的网址是:http://localhost:8090/Structs2724/user/useradd

  对应的structs.xml的配置行如下

        <action name="useradd" class="DMI.UserAddAction" method="Add" >
<result name="success">
/adduser.jsp
</result>

  对应的action.java文件如下

 package DMI;

 import com.opensymphony.xwork2.ActionSupport;

 public class UserAddAction extends ActionSupport {
public String Add() {
return SUCCESS;
}
}

  structs.xml解析到user的namespace后,发现有一个叫做useradd的action,然后继续解析这个action的属性,发现了一个叫method的属性,哦,原来这个action对应的是这个method啊,然后呢,就开始执行这个Add这个方法,然后返回"success"这样的字符串,这个时候,action从自己的result找对应的result,然后返回给浏览器adduser.jsp这个文件。这样就实现了多调用

方法二,采用!来实现(不推荐使用)

  仔细看方法一,发现,如果这个action有很多方法,那么,我们得写很多action,所以有没有一种方法可以匹配所有的action的方法呢?那就用!来实现吧

  实现的配置是:在structs.xml文件中开启一个值

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

  然后对应的action可以设置为如下

        <action name="user" class="DMI.UserAddAction" >
<result >
/adduser.jsp
</result>
</action>

  然后可以通过下面的网址来访问:

    http://localhost:8090/Structs2724/user/user!add

方法三,采用通配符来匹配,最常用,强烈推荐

  这个是对方法一的进一步扩充,需要关闭structs.xml的动态匹配,也就是将方法二开启的那个开关给关了,具体的如下所示

        <action name="*" class="DMI.UserAddAction" method="{1}">
<result>
/{1}.jsp
</result>
</action>

  对应的action如下

    public String Add() {
return SUCCESS;
} public String Addabc(){
return SUCCESS;
} public String Add3(){
return SUCCESS;
}

Struts2动态方法调用(DMI)的更多相关文章

  1. Struts2 动态方法调用

    01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...

  2. Struts2动态方法调用

    动态方法就是一个Action对应多个请求,减少Action的数量 1.指定method属性 <action name="addAction" method="add ...

  3. (Struts2学习系列三)Struts2动态方法调用:通配符方式

    更改src/struts2.xml的代码: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  4. (Struts2学习系列二)Struts2动态方法调用:指定method属性

    紧接着上一篇,在HelloWorldAction.java中添加add和update方法: public class HelloWorldAction extends ActionSupport{ p ...

  5. Struts2学习笔记 - Action篇<动态方法调用>

    有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这里就说一下Dynamic Method nvocation ,动态方法调用,什么是动态方 ...

  6. struts2之动态方法调用(转)

    转自:http://blog.csdn.net/longwentao/article/details/6940289 当我们访问一个Action时,默认是访问execute()方法,但当在一个Acti ...

  7. 第三篇——Struts2的动态方法调用

    Struts2动态方法调用 默认方式:默认执行方法中的execute方法,若指定类中没有该方法,默认返回success: method方式:执行method属性中定义的方法,没有该方法,页面报错: 通 ...

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

    © 版权声明:本文为博主原创文章,转载请注明出处 Struts2动态方法调用 - 默认:默认执行方法中的execute方法,若指定类中没有该方法,默认返回success <package nam ...

  9. ActionMethod_DMI_动态方法调用

    Action执行的时候并不一定要执行execute方法可以在配置文件中配置Action的时候用method=来指定执行那个方法,也可以在url地址中动态指定(动态方法调用DMI)(推荐) 动态方法调用 ...

随机推荐

  1. Spring AOP 四大通知

    Spring AOP 四大通知 Spring 3.X 以前 1.前置通知,实现  MethodBeforeAdvice 接口,重写 public  void  before(Method  metho ...

  2. C语言中的循环结构与选择结构

    1. 为什么使用循环? 重复执行某段代码 2. while(条件){ 循环体: } 当条件成立的时候就执行循环体,条件不成立,就退出循环,继续执行while后面的语句 3. for ( 初始表达式 : ...

  3. IntentService源码分析

    和HandlerThread一样,IntentService也是Android替我们封装的一个Helper类,用来简化开发流程的.接下来分析源码的时候 你就明白是怎么回事了.IntentService ...

  4. 文件与目录的rwx权限

    r(Read,读取):对文件而言,具有读取文件内容的权限:对目录来说,具有浏览目录的权限. w(Write,写入):对文件而言,具有新增.修改文件内容的权限:对目录来说,具有删除.移动目录内文件的权限 ...

  5. spring 事务管理方式及配置

    1.Spring声明式事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之前对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的 ...

  6. 【Python】-【类解析】--【脚本实例】

    通过脚本事例,解析下Python中类的几个概念在脚本中的应用 脚本如下: ++++++++++++++++++++++++++++++++++++++++ #!/usr/bin/env python# ...

  7. SQL server基础知识(表操作、数据约束、多表链接查询)

    SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...

  8. 烂泥:Linux源码包制作RPM包之Apache

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器比较多,需要把apache源码包制作成rpm包,然后放到公司内网yum源上进行下载安装.apache的rpm包安装方式比源码安装方式比较快,这能 ...

  9. nginx参数说明

    一.nginx的核心配置: >>> 正常运行的必备配置: 1. user username [groupname]; #指定运行worker子进程的用户或组 2. pid /path ...

  10. if_nametoindex可以检查网卡名称是否有效

    NAME if_nametoindex, if_indextoname, if_nameindex, if_freenameindex - convert interface index to nam ...