Struts框架也是我们经常用到的框架,但是我们是否非常熟悉Action的通配符映射呢,让我们了解一下
- 第一种也是我们新手经常用到的,但是这种有非常大的局限性,只能用于execute方法的配置,代码如下:
/**
* url:http://localhost:8088/项目名称/helloWorldAction.action
*/
<package name="helloworld" namespace="/" extends="struts-default">
<action name="helloWorldAction" class="cn.itcast.sh08.struts2.action.HelloWorldAction">
<result name="index">index.jsp</result>
</action>
</package>
第二种就是每个方法匹配一次,确实比第一种好,但是还是比较麻烦的,比如一个Action中有多种方法,需要匹配多个Action
/**
* url:http://localhost:8088/项目名称/user1.action
*/
<package name="struts2Demo" namespace="/" extends="struts-default">
<action name="user1" class="com.example.action.UserAction" method="addUser">
<result name="add">/addUser.jsp</result>
</action>
<action name="user2" class="com.example.action.UserAction">
<result name="delete">/deleteUser.jsp</result>
</action>
</package>
- 第三种方法就是动态调用,也叫!调用,在调用之前设置一个全局变量<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
/**
* url:http://localhost:8088/项目名称/user!delete.action
*/
<action name="user" class="com.example.action.UserAction">
<result name="welcome">/welcomeUser.jsp</result>
<result name="delete">/deleteUser.jsp</result>
<result name="add">/addUser.jsp</result>
<result name="update">/updateUser.jsp</result>
</action>
- 第四中也是通配符调用,一般都用这种方法
/** * url:http://localhost:8088/项目名称/user!deleteUser.action */ <action name="user_*" class="com.example.action.UserAction" method="{1}"> <result name="welcome">/welcomeUser.jsp</result> <result name="delete">/deleteUser.jsp</result> <result name="add">/addUser.jsp</result> <result name="update">/updateUser.jsp</result> </action>