动态方法调用

 

1、Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量

  1. struts.enable.DynamicMethodInvocation = true

2、使用“!”方法,即action名称!方法名称。

struts.xml

  1. <action name="query" class="action.QueryAction">
  2. <result name="success">/success.jsp</result>
  3. <result name="update">/update.jsp</result>
  4. </action>

请求URL为/query!success.action,调用actio.QueryAction的success()方法;

请求URL为/query!update,调用actio.query的update()方法;

路径上的.action可以写也可以不写,Struts2默认添加.action为后缀,如果更改了后缀名,例如.do,就要显示声明。

3、好处:减少action数量,但是结果集数量不变。

通配符映射

1、不必配置

  1. struts.enable.DynamicMethodInvocation = true

2、写法

struts.xml

  1. <action name="*_*" class="action.{1}Action" method="{2}">
  2. <result>{1}_{2}Succ.jsp</result>
  3. </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

最新文章

  1. matlab 中 eps 的分析
  2. 如此清除sql server 2008 记住的用户名
  3. Linux进程关系
  4. caffe: test code for PETA dataset
  5. 无法将 lambda 表达式 转换为类型&ldquo;System.Delegate&rdquo;,因为它不是委托类型
  6. 用intent打开各种类型文件
  7. 转:CRect类 的介绍
  8. HNCU1099:堆积木
  9. ffmpeg的安装--opencv视频处理必备
  10. 消息映射(C++)(转)
  11. JavaService实现Windows服务
  12. beanstalk 安装
  13. Windows Server 2016-DNS 新增或改进功能
  14. vue项目使用 prerender-spa-plugin 预渲染
  15. latex如何定义宏,插图统一尺寸减少工作量
  16. poj 3415 Common Substrings - 后缀数组 - 二分答案 - 单调栈
  17. wpf UI 元素类型
  18. R语言学习 第十篇:包
  19. ra (数论 , 莫比乌斯反演 , 整点统计)
  20. CentOS6.x下,tomcat - web项目部署

热门文章

  1. Linux 更改时区
  2. OpenStack IceHouse 部署 - 1 - 架构说明
  3. python保存字典和读取字典pickle
  4. Django——REST framework
  5. Recovering InnoDB table from an .ibd file.
  6. MAVLink Onboard Integration Tutorial
  7. spring boot(1)-Hello World
  8. 2.MySQL 数据类型
  9. Avalon探索之旅
  10. Windows Azure系列公开课 - 第二课:为什么选择Windows Azure(下)