1.调用相同Action中的不同方法 ,动态结果
<span style="font-size:14px;"><action name="Wildcard_*" class="com.zucc.action.TestActionWildcard" method="{1}">
<result>/Wildcard_{1}.jsp</result>
</action></span>
当在浏览器中输入http://localhost:8080/Struts2/Wildcard_del时,去调用了TestActionWildcard中的del方法,并返回Wildcard_del.jsp
页面,也就是说表达式{1}的值--->name属性值"Wildcard_*"中*的值,然后去调用class属性值的Action中相应的方法
2.通过匹配,调用不同的Action中的方法
<span style="font-size:14px;"><action name="*_*" class="com.zucc.action.TestAction{1}" method="{2}">
<result>/{1}_{2}.jsp</result>
</action></span>
当在浏览器中输入http://localhost:8080/Struts2/Wildcard_del时,去调用了TestActionWildcard中的del方法,并返回Wildcard_del.jsp
页面,也就是说表达式{1}的值--->name属性值"*_*"中第一个*的值,{2}的值--->name属性值"*_*"中第二个*的值,然后去调用class属
性值的Action中相应的方法
注意:当精确配置,第一种通配符配置,第二种通配符配置同时存在,会先判断是否匹配到精确配置的name的属性值,再判断是否
匹配到第一种通配符配置的name的属性值,最后判断是否匹配到第二种通配符配置的name的属性值。
如:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="Wildcard_del"class="com.zucc.action.TestActionWildcard" ></action>
<result>/Hello.jsp</result>
<action name="Wildcard_*" class="com.zucc.action.TestActionWildcard" method="{1}">
<result>/Hello1.jsp</result>
</action>
<action name="*_*" class="com.zucc.action.TestAction{1}" method="{2}">
<result>/Hello2.jsp</result>
</action>
</package>
</struts>
当在浏览器输入http://localhost:8080/Struts2/Wildcard_del时先匹配到第一个action,返回Hello.jsp页面
当在浏览器输入http://localhost:8080/Struts2/Wildcard_add时先匹配到第二个action,返回Hello1.jsp页面
当在浏览器输入http://localhost:8080/Struts2/Www_add时只匹配到第三个action,返回Hello3.jsp页面