struts2官方 中文教程 系列十三:利用通配符选择方法
介绍
在本教程中,我们将介绍如何在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配置文件中需要编写和管理的操作映射节点的数量。