使用通配符的过程中如果某一个action的名字可以和要访问的地址精确匹配,那么不管这个action在package中的位置如何都访问此
action的result中的jsp文件。
如:
<action name="Teacher_add" class="com.zeko.action.wildcard.TeacherAction" method="add">
<result name="success">
/Teacher_add_success_direct.jsp
</result>
</action>
<action name="*_*" class="com.zeko.action.wildcard.{1}Action" method="{2}">
<result name="success">
/{1}_{2}_success.jsp
</result>
</action>
在上面的例子中,如果我们要访问的是Teacher_add.action,那么上面的两个action都可以进行匹配,但是实际访问的是第一个action
也就是精确匹配的action,就是把这个action放在*_*action的后面访问的也是这个action。
但是如果没有能够精确匹配的,只有能够部分匹配的,如:
<action name="Teacher_*" class="com.zeko.action.wildcard.TeacherAction" method="{1}">
<result name="success">
/Teacher_{1}_success_direct.jsp
</result>
</action>
<action name="*_*" class="com.zeko.action.wildcard.{1}Action" method="{2}">
<result name="success">
/{1}_{2}_success.jsp
</result>
</action>
上面两个action在访问Teacher_add时,都只能部分匹配,所以实际匹配的结果是匹配在前面的action,也就是Teacher_*action。
在struts.xml中设置好了配置文件之后,在以后的使用过程中只要遵循设计时的命名规则,就可以在完全不用更改配置文件的情况下
实现动态的页面绑定。