WebWork中实现IoC(4)

4、在WebWorkXWork中配置组件

1)配置web.xml

要配置WebWork的组件管理,需要在web.xml中加入下面各行:

<filter>
      
      
    <filter-name>container</filter-name>
      
      
    <filter-class>com.opensymphony.webwork.lifecycle.RequestLifecycleFilter</filter-class>
      
      
</filter>
      
      
 
      
      
<filter-mapping>
      
      
   <filter-name>container</filter-name>
      
      
   <url-pattern>*.action</url-pattern> <!-- modify appropriately -->
      
      
</filter-mapping>
      
      
 
      
      
<listener>
      
      
    <listener-class>com.opensymphony.webwork.lifecycle.SessionLifecycleListener</listener-class>
      
      
</listener>
      
      
 
      
      
<listener>
      
      
    <listener-class>com.opensymphony.webwork.lifecycle.ApplicationLifecycleListener</listener-class>
      
      
</listener>
      
      

这些设置允许WebWorkapplicationsessionrequest范围内管理组件。注意,即使你的应用程序某种范围没有并不需求,也都要包括。

2)配置xwork.xml

ComponentInterceptor用来将IoC模式应用到XWorkAction中。因此,必须在xwork.xml中使用<interceptors>来声明ComponentInterceptor

<interceptor name="component"
      
      
        class="com.opensymphony.xwork.interceptor.component.ComponentInterceptor"/>
      
      

如果你想应用IoCAction和组件以外的对象,需要直接使用ComponentManager

另外,ComponentInterceptor已经在WebWorkdefaultStack应用。因此,如果你在xwork.xml中应用了defaultStack,就已经包含ComponentInterceptor了。

3)配置components.xml

components.xml用来定义可用的组件。这里指定的组件会被加载到XWorkComponentManager,对成为指定enabler实例的Action有效。components.xml必须放在WEB-INF/classes目录下。

下面的例子在components.xml中配置名为Counter组件,它的生命周期范围是session,将会被传递给实现CounterAware接口的对象:

<components>
      
      
    <component>
      
      
        <scope>session</scope>
      
      
        <class>com.opensymphony.webwork.example.counter.Counter</class>
      
      
        <enabler>com.opensymphony.webwork.example.counter.CounterAware</enabler>
      
      
    </component>
      
      
</components>
      
      

每个component有三个属性:

l         scope:组件生命周期范围,有效值为applactionsessionrequest

l         class:组件类全路经

l         enablerenabler类或接口(后者推荐使用),任何作为enabler实例的Action,都会被传递组件实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值