通配符映射
一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系
通配符映射规则
若找到多个匹配, 没有通配符的那个将胜出
若指定的动作不存在, Struts 将会尝试把这个 URI 与任何一个包含着通配符 * 的动作名及进行匹配
被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串…
{0} 匹配整个 URI
若 Struts 找到的带有通配符的匹配不止一个, 则按先后顺序进行匹配
* 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 .
使用通配符映射:
<package name="commontest" extends="struts-default">
<action name="*_common" class="com.hgh.struts2.common.CommonTest" method="{1}">
<result >/success.jsp</result>
</action>
</package>
不适用通配符:
<package name="commontest" extends="struts-default">
<action name="add_common" class="com.hgh.struts2.common.CommonTest" method="add">
<result >/success.jsp</result>
</action>
<action name="delete_common" class="com.hgh.struts2.common.CommonTest" method="delete">
<result >/success.jsp</result>
</action>
<action name="query_common" class="com.hgh.struts2.common.CommonTest" method="query">
<result >/success.jsp</result>
</action>
<action name="update_common" class="com.hgh.struts2.common.CommonTest" method="update">
<result >/success.jsp</result>
</action>
</package>
<body>
<a href="add_common.do">add</a>
<br>
<a href="delete_common.do">delete</a>
<br>
<a href="query_common.do">query</a>
<br>
<a href="update_common.do">update</a>
<br>
</body>