在struts1.2中的action路径内使用通配符

在大型的struts应用中struts的action mapping的数量庞大始终为一个不好解决的问题,如果你有很多类似的action,可以通过增加通配符来将它们整合为一个action mapping。

下面为一个例子:

<action    
        path="/Edit*"
        type="com.oreilly.strutsckbk.ch07.Edit{1}Action"
        name="{1}Form"
        scope="request"
        validate="false">
    <forward 
        name="success" 
        path="/edit_{1}.jsp"/>
</action>

<action    
        path="/Save*"
        type="com.oreilly.strutsckbk.ch07.Save{1}Action"
        name="{1}Form"
        scope="request"
        validate="true"
        input="edit_{1}.jsp">
    <forward 
        name="success" 
        path="/saved_{1}.jsp"/>
</action>
 

在上面的例子中,当有请求/EditEmployee.do时,struts首先会寻找精确匹配,如果找不到,就会去寻找带有匹配的mapping,比如本例就会匹配/Edit*。{1}表示请求的url中所匹配的部分,本例中{1}就是Employee。

如果你想编辑和修改不同的信息,比如卖家(vendor)。不使用通配映射,你也可以建立这种映射

<action    
        path="/EditVendor"
        type="com.oreilly.strutsckbk.ch07.EditVendorAction"
        name="VendorForm"
        scope="request"
        validate="false">
    <forward 
        name="success" 
        path="/edit_Vendor.jsp"/>
</action>

<action    
        path="/SaveVendor"
        type="com.oreilly.strutsckbk.ch07.SaveVendorAction"
        name="VendorForm"
        scope="request"
        validate="true"
        input="edit_Vendor.jsp">
    <forward 
        name="success" 
        path="/saved_Vendor.jsp"/>
</action>
但是,如果你使用通配方式,你可以使用一套通用的action元素来处理employee和vendor。当然你也可以为vendor创建不同的jsp,Action和ActionForm。
action中的以下元素可以使用通配方式,分别type,name,roles,parameter,attribute,forward,include,input。
你还可以在你的path属性中使用除了“*”以外的通配符:
“*”,匹配零个或多个字符(不包括斜线“/”);
“**”,匹配零个或多个字符(包括斜线“/”);

/character,用来匹配特殊字符,比如/*用来匹配符号*,//用来匹配符号/。

本人水平有限,如果有不明之处的,请参考此网址http://struts.apache.org/userGuide/building_controller.html#action_mapping_wildcards

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值