黑马程序员---struts2学习笔记之三通配符与动态方法调用

本文介绍 Struts2 框架中 Action 的方法访问方式,包括通过配置文件指定方法、使用通配符简化配置以及动态方法调用等技术细节。

-----------android培训java培训、java学习型技术博客、期待与您交流!------------


struts2中通配符与动态方法调用

1.关于Action中方法访问的问题:

        前端请求一个Action时,默认是执行这个Action的execute()方法,显然是不能满足实际开发的需要,在实际开发中,一个action类往往会包括多个方法。

在配置action的时候<action/>标签中有一个属性“method”,用于指定访问此action,对应相应的类的哪个就去,例如:

后台action配置:

***************************************************************

<action name="addBookAction"class="com.struts2.pattern.BookAction"method="addBook">

< resultss name="ok">/index.jsp</results>

</action>

表示的访问com.struts2.pattern.BookAction这个类的addBook()方法

***************************************************************

        Struts2构架要求Action类中定义的可以访问的方法要与execute()访问权限、返回类型(String)、参数列表(无参数)完全相同(即方法名不同外,其它全部相同)。

2. 通配符的使用:

       在实际开发中,一个Action往往包含多个可访问的方法,即一个包可能会定义多个action,如果按以上的配置方法,会导致配置文件的内容过多,且许多内部相同,为解决这一问题,Struts2框架允许使用通配符“*”进行配置文件的配置,例如:

后台action配置:

***************************************************************

<action name="*Action"class="com.struts2.pattern.BookAction"method="{1}">

< resultss name="ok">/index.jsp</ resultss >

</action>

“*”:表示此action的名称前半部分现在不确定,由前端访问时给出

{1 }:表示第一个通配符,即对应“*Action”中的*,表示此外的内容与*一致

通配符可以设置多个!

 ***************************************************************

前端的uri为:

……/xxx/addBookAction

……/xxx/delBookAction

        访问以上两个链接时,红色字体部分会匹配到name="*Action"中的“*”同时也会匹配method="{1}"中的“{1}”,从而达到只需要在配置文件中配置一个action标签,根据前端指定的实际action名称来访问Action类中不同方法的效果。

3.动态方法调用(不经常使用,但蛮好用):

后台action配置:

***************************************************************

<action name="BookAction"class="com.struts2.pattern.BookAction">

< resultss name="ok">/index.jsp</ resultss >

< resultss name="……">/index.jsp</ resultss >

……

</action>

***************************************************************

前端的uri为:

……/xxx/ BookActionaddBoook(访问com.struts2.pattern.BookActio类的addBook()方法

……/xxx/ BookActiondelBoook(访问com.struts2.pattern.BookActio类的delBook()方法

        小结:动态方法调用其实就是:前端请求的链接格式为namespace+actionName+!+Actio类的方法,后端的配置文件中不用配置method属性的具体方法。

        Struts2架构动态方法调用的功能是可以关闭的(默认是开启的),开发人员可以通过配置常量的方式将其关闭,如:

<constant name="struts.enable.DynamicMethodInvocation" value=“False|true"></constant>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值