通配符(*)可以匹配 0个或者多个字符
<action name="edit*" class="Edit{1}Action">
<result name="failure">failure.jsp</result>
<result>/{1}.jsp</result>
</action>
允许以edit开头的URI 例如/editNews 和/editCity
但是如是请求/editNews/add 那么这个就不匹配
- * 匹配0-N个字符除\
- ** 匹配0-N个字符 包括(\)字符
- \ 用于转移 \*可以匹配* \\可以匹配'\'
特殊符号{1}是占位符,它将被通配符所匹配的值所代替
访问/editNews 最后执行的页面的是News.jsp
通配符的值可以{n}来标示 。n是1--9的数字
整个请求的URI可以用{0}表示
通配符和动态调用是不同的当你访问/edit_news时,框架认为匹配action在配置文件中硬编码了,框架相信正在执行
edit_news action 并且知道它正在执行相应的Action类的create方法,对于动态调用使用的相同的验证,消息资源和类型转化,而对于通配符的方法我们可以为每一个展开后的acting映射添加自己的验证,消息资源和类型转换。就像常规的Action一样
<action neme="*">
<result>index.jsp</result>
</action>
这种可以匹配任何Action的请求 放在配置的后面也是对默认实现Action的一种方法。
当多个Action匹配N个调用请求的时候 框架优先选取没有使用通配符的action 而不管action映射所在的位置。
如果都是使用了通配符,就按照在配置文件的顺序来匹配请求