struts2的动态方法调用(DMI)和通配符映射
动态方法调用
1、Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量
- struts.enable.DynamicMethodInvocation = true
2、使用“!”方法,即action名称!方法名称。
struts.xml
- <action name="query" class="action.QueryAction">
- <result name="success">/success.jsp</result>
- <result name="update">/update.jsp</result>
- </action>
请求URL为/query!success.action,调用actio.QueryAction的success()方法;
请求URL为/query!update,调用actio.query的update()方法;
路径上的.action可以写也可以不写,Struts2默认添加.action为后缀,如果更改了后缀名,例如.do,就要显示声明。
3、好处:减少action数量,但是结果集数量不变。
通配符映射
1、不必配置
- struts.enable.DynamicMethodInvocation = true
2、写法
struts.xml
- <action name="*_*" class="action.{1}Action" method="{2}">
- <result>{1}_{2}Succ.jsp</result>
- </action>
请求URL为/Query_success,调用actio.QueryAction的success()方法;
{1}、{2}表示通配符的位置,这里{1}表示Query,{2}表示success;
另{0}表示整个通配符,这里表示Query_success,所以上面的结果集也可以写成{0}Succ.jsp
3、好处:减少action数量的同时,减少结果集的数量,体现“约定优于配置”,在增加代码的同时,并不需要对struts.xml文件进行更改;
4、URL请求顺序:当有多个action被匹配成功,例如XAction、*Action、*,对于请求XAction,则匹配XAction,忽视XAction的出现顺序,对于请求YAction,则由*Action、*在struts.xml的出现顺序决定,先出现的先调用
5、匹配带有“/”的路径:
(1)配置常量struts.enable.SlashesInActionNames = true
(2)有些书写用**匹配带“/”的路径,但是本人实验结果不需要**,直接*/*即可
来自于:http://blog.csdn.net/abc45628/article/details/45482649
struts2的动态方法调用(DMI)和通配符映射的更多相关文章
- struts2之动态方法调用(转)
转自:http://blog.csdn.net/longwentao/article/details/6940289 当我们访问一个Action时,默认是访问execute()方法,但当在一个Acti ...
- 第三篇——Struts2的动态方法调用
Struts2动态方法调用 默认方式:默认执行方法中的execute方法,若指定类中没有该方法,默认返回success: method方式:执行method属性中定义的方法,没有该方法,页面报错: 通 ...
- Struts2之动态方法调用
1.感叹号 前台页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...
- Struts2学习笔记 - Action篇<动态方法调用>
有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这里就说一下Dynamic Method nvocation ,动态方法调用,什么是动态方 ...
- Struts2中动态方法的调用
Struts2中动态方法调用就是为了解决一个action对应多个请求的处理,以免action太多. 主要有一下三种方法:指定method属性.感叹号方式和通配符方式.推荐使用第三种方式. 1.指定me ...
- Struts2之action 之 感叹号 ! 动态方法调用
struts2的动态方法调用的方式: 1.第一种方式:设置method属性 在Action类中定义一个签名与execute方法相同.只是名字不同的方法,如定义为: public String logi ...
- ActionMethod_DMI_动态方法调用
Action执行的时候并不一定要执行execute方法可以在配置文件中配置Action的时候用method=来指定执行那个方法,也可以在url地址中动态指定(动态方法调用DMI)(推荐) 动态方法调用 ...
- 01_5_Struts_ActionMethod_DMI_动态方法调用
01_5_Struts_ActionMethod_DMI_动态方法调用 1. ActionMethod_DMI_动态方法调用 Action执行的时候并不一定要执行execute()方法 可以在配置文件 ...
- 第三章Struts2 Action中动态方法调用、通配符的使用
01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...
随机推荐
- BZOJ3512:DZY Loves Math IV
传送门 Sol 好神仙的题目.. 一开始就直接莫比乌斯反演然后就 \(GG\) 了 orz 题解 permui 枚举 \(n\),就是求 \(\sum_{i=1}^{n}S(i,m)\) 其中\(S( ...
- ajax异步上传图片三种方案
转自:http://www.jb51.net/article/51180.htm 注:自己尝试了前两种,都可用: 目前常用的异步文件上传功能有几种,比较多见的如使用iframe框架形式,ajax功能效 ...
- PHP 如何向关联数组指定的 Key 之前插入元素
PHP 关联数组可以通过三种方式插入新元素: $array[$insert_key] = $insert_value; $array = array_merge($array, $insert_arr ...
- 下面有关css选择器的说法错误的是?
下面有关css选择器的说法错误的是? .intro --- 选择 class="intro" 的所有元素. #firstname --- 选择 id="firstname ...
- jsonp和ajax的区别
一.Ajax工作原理 相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化.对于用户请求ajax引擎会做一些数据验证和数据处理,不是所有请求都提交给服务器,当需要从服务 ...
- ORA-28001:口令已经失效
Oracle11G创建用户时缺省密码过期限制是180天(即6个月),如果超过180天用户密码未做修改则该用户无法登录. 查看密码的有效期设置,LIMIT字段是密码有效天数. select * from ...
- switch与java
switch结构可以更好的解决等值判断问题switch 选择结构的语法:switch (表达式){case 常量 1://代码块1:break;case 常量 2://代码块2:break;..... ...
- Python学习---django知识补充之CBV
Django知识补充之CBV Django: url --> def函数 FBV[function based view] 用函数和URL进行匹配 url --> ...
- 3 Dockerfile指令详解-FROM&MAINTAINER&RUN
1.FROM指令 FROM centos #指定centos为基础镜像 2.MAINTAINER 指令 MAINTAINER @QQ.COM #指定维护人等信息,方便维护 3.RUN 命令 #新建 ...
- 深入浅出WinDbg——利用快速定位错误
场景描述: Sharepoint代码的某方法LoadLines()中使用了SPSecurity.RunWithElevatedPrivileges(delegate() 此方法两次调用了Common. ...