本文主要是介绍在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
这篇关于在struts1.2中的action路径内使用通配符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!