映射通配符
代码示例
<action name="*_*" class="com.actiontest.{1}" method="{2}">
<result>/{0}.jsp</result>
</action>
映射通配符一般由**
、*
和\
组成,其中**
匹配带/
的字符串、*
匹配不带/
的字符串、\
作为转义字符,当需要匹配*
时使用。
访问时可以用{N}来访问各个元素。举个栗子,假如匹配的actionName为User_save
,则{1}
代表User
,{2}
代表save
,{0}
代表整个字符串,即User_save
。通配符的好处是减少了action的数量,通过这种匹配的手段我们可以直接把一类同意action类的各个方法的请求写成一个action标签,也方便了后期检查维护。
动态方法调用
动态方法调用就是在URL上动态的调用Action类对象的方法。要使用动态方法调用功能首先必须打开动态方法调用的开关,它被设置在default.properties文件里面,默认值为false,要打开则需要在structs.xml里添加该语句:
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
之后就可以通过在URL中添加!methodName
来动态地调用某个方法了。需要注意的是,当使用动态方法调用方法后,即使在action标签中给method属性赋值了一个方法映射,action还是会调用动态调用的方法。