介绍

在本教程中,我们将介绍如何在struts.xml中配置action节点以达到仅使用一个action节点将几个不同的url关联到特定action类的特定方法。这样做的目的是减少struts.xml文件中action节点的数量

本帖地址:struts2官方 中文教程 系列十三:利用通配符选择方法 即 http://www.cnblogs.com/linghaoxinpian/p/7047295.html

下载本章节代码

不使用通配符

新建一个PersonAction类,类里包含create、edit、delete方法,那么,相应的在struts2.xml文件中,我们要添加如下URL映射

<action name="createPerson" class="action.PersonAction" method="create">
<result name="input">input.jsp</result>
<result name="success">view.jsp</result>
</action> <action name="editPerson" class="action.PersonAction" method="edit">
<result name="input">input.jsp</result>
<result name="success">view.jsp</result>
</action>

可以看出这是多么繁琐的操作。使用通配符方法,使Struts 2框架能够动态地选择在运行时调用正确方法,您只需使用通配符 * ,在您的名称值和一个属性值放一个占位符 {1} 。例如:

<action name="*Person" class="action.PersonAction" method="{1}">
<result name="success">view.jsp</result>
<result name="input">input.jsp</result>
</action>

该节点可以匹配任何以Person为后缀的URL,同时要执行的方法为 * 的内容,这与正则表达式是相同的,另外,第一个 *  由{1}表示,第二个 *  由{2}表示........如下URL皆可匹配:

http://localhost:8080/struts_basic/createPerson.action

http://localhost:8080/struts_basic/editPerson

http://localhost:8080/struts_basic/indexPerson

动态方法调用

本章的 “通配符动态方法选择” 不应与 “动态方法调用” 混淆,Struts 2的文档解释了这种技术(它使用了 !),并建议不要使用“动态方法调用”技术,因为安全性和其他与此技术在内部实现的原因或相关的原因。Struts 2文档也建议通过在struts配置文件中设置struts.enable.DynamicMethodInvocation= FALSE 来关闭动态方法调用。

总结

通过使用上面介绍的通配符方法选择技术,可以显著减少在Struts 2 XML配置文件中需要编写和管理的操作映射节点的数量。

最新文章

  1. linux下的apache配置文件详解
  2. 图像上传OSS的BUG
  3. myeclipse中导入的js文件报错(出现红叉叉,提示语法错误)
  4. C#实现程序自重启
  5. WPF异步调用
  6. 转载---SQL Server XML基础学习之&lt;6&gt;--XQuery的 value() 方法、 exist() 方法 和 nodes() 方法
  7. [BZOJ 2243] [SDOI 2011] 染色 【树链剖分】
  8. 钢管下料问题(钢管用量最少)Lingo求解
  9. 自动生成XML空节点格式的差异
  10. 字符串比较必须使用strcmp
  11. BZOJ 无数据题集合
  12. boost::asio设置同步连接超时
  13. KVM 基本硬件容量扩容
  14. Spring Boot 系列教程12-EasyPoi导出Excel下载
  15. [BZOJ1609] [Usaco2008 Feb] Eating Together麻烦的聚餐 (dp)
  16. word20161231
  17. 利用 Saltstack 远程执行命令
  18. javascript生成指定范围的随机整数
  19. thinkphp51 重定向 redirect()
  20. RabbitMQ ——“Hello World”

热门文章

  1. 利物浦VS曼城,罗指导的先手与工程师的后手
  2. 关于bootstrap-table服务端分页问题
  3. POJ 2342 树的最大独立集
  4. No space left on device错误解决
  5. 【洛谷P3818】小A和uim之大逃离 II
  6. 【洛谷P1005】矩阵取数游戏
  7. 【luogu P1268 树的重量】 题解
  8. HTML5之转动的轮子
  9. 让IIS支持无后缀名访问
  10. Angularjs 数据双向绑定