Starting Struts2摘抄(4)

 Struts2解释器:

负责异常处理、文件上传、回调生命周期以及认证。支撑action的预处理和后处理

涉及的解释器:

1.Spring Framework -- ActionAutowiringInterceptor
2.Request String and Form Values -- ParametersInterceptor
3.Servlet-based object -- ServletConfigInterceptor

接下来逐一学习。

第一个解释器是一个单纯的spring框架解释器。(没找到过多解释)
第二个解释器很明显与action访问request以及form中的数据相关。
以上两个解释器都对操作的action没有任何要求。从这里我们看得出,解释器一词
更多使用了依赖注入的机制。在配置文件中,指定了对应的action,那么调用过程
中,便针对该依赖,进行数据的注入,而程序员无需关心数据的来源,仅仅进行操作
即可。但是,看到这里,我的问题就是:如果这样的解释器存在,而action给出的
格式或者定义是不合法的时候。调试会不会比version1.1里面复杂的多呢?

第三个解释器需要依赖interface实现,具体如下:

1)SessionAware -- 通过一个Map访问一个Session所有属性
2)ServletRequestAware -- 访问 HttpServletRequest 对象的接口。这里,
HttpServletRequest对象是在上一个版本的Struts里面很重要的数据获取来源。
当时页面的form数据内容就包含其中。
3)RequestAware -- 通过一个Map访问Request属性
4)ApplicationAware -- 通过一个Map访问Application属性

备注:1、2、4是jsp很重要的几个属性空间,具备不同的生命周期。看来Struts2
      提供了很强的兼容性。也许将来会提供更令活的数据访问方式。

5)ServletResponseAware -- 访问HttpServletResponse对象的接口,这是上一个
版本中action提供的execute方法的另一个重要参数。一般作为出口参数。
6)ParameterAware -- 通过一个Map对所有request和form数据进行访问
7)PrincipleAware -- 访问PrincipleProxy对象。(这里没有接触,照抄原话)

(PrincipleProxy) this object implements the principle and role methods
of the HttpServletRequest object in implementation, but by providing a
proxy, allows for implementation independence in the action.

8)ServletContextAware -- 提供访问ServletContext对象的接口。


要注意,最重要的两个解释器并没有介绍。虽然这里说了这么多,这不是最重要的
因为我们最终要接受并熟练掌握Struts2框架的实现机制,才能灵活使用新框架,
新功能。

接下来我们看看通过这些解释器我们怎么实现依赖注入,从而将数据获取很轻易的
从我们的程序里面隐藏的呢?

首先我们记得在struts.xml里面,指定package的位置上,我们有这样一个标签
<package>其中一个属性 extends,指明了继承自struts-default。这里说明,在
struts-default里面已经有一个默认的解释器配置。因为模块化,所以每个package
被声明的时候最简单的使用解释器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值