struts.xml使用通配符

1.

未使用通配符时的action配置如下:

<action name="addUser"class="com.asm.UserAction"method="addUser">

                 <result name="success">/user/addUser.jsp</result>
</action>

<action name="delUser"class="com.asm.UserAction"method="delUser">

                 <result name="success">/user/delUser.jsp</result>

</action>

<action name="queryUser"class="com.asm.UserAction"method="queryUser">

                 <result name="success">/user/queryUser.jsp</result>

</action>

<action name="updateUser"class="com.asm.UserAction"method="updateUser">

              <result name="success">/user/updateUser.jsp</result>

</action>

我们注释掉上面的配置,使用通配符只需如下内容即可达到相同的效果:
<
action name="*User" class="com.asm.UserAction" method="{1}User">

                 <result name="success">/user/{1}User.jsp</result>

</action>

原理:当有.../addUser.action请求时,如果不能在当前应用中找到完全相同的addUser名字的Action时,通配符配置这时就起作用了,按通配原则,它便和上面的name="*User"相配成功,这里不难明了*此时代指的内容是add,再来看method恰恰是引用第一个*的内容,所以它的method此时的完整名为addUser,它刚好和com.asmUserAction中的addUser方法相对,所以它会去addUser方法,再来看下面的result配置所指代的页面,它也用到了{1},所以它的完整页面是/addUser.jsp。

2.

其实如果我们有良好的编程命名习惯,所有的Action我们都只需要进行一次配置。举例:规定所有的Action类都用XXXAction来命名,类中所有的CRUD方法都用add/del/update/query。Jsp页面也用add/del/update/query_XXX.jsp这样的形式。即配置文件可以写成如下形式:
<action name="*_*"class="com.asm.{2}Action"method="{1}">

                 <result name="success">.../{1}_{2}.jsp</result>

</action>

Name中第一个*代表CRUD操作的名字,第二个*代表类的名字。所以访问链接地址举例如下:

.../del_User.action将访问到User类的del方法,成功后跳到del_User.jsp页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值