让Seasar支持TilesPlugin

如果你将要继续深入的看这篇文章,我将假设你已经对Seasar以及Tiles有了一定的了解。
如果不是,我建议你先看看去了解一下他们的相关技术再来。


下面我们开始。
我们要求的并不仅仅是支持TilesTagLib,而是要Seasar支持TilesPlugin。
但是很可惜,Seasar作为一个比较完善的Web框架,却没有提供对TilesPlugin的支持。先来发现问题的根源。通过读源代码我们可以发现,Seasar的S2RequestProcessor是继承自[org.apache.struts.action.RequestProcessor]的,而Tiles的TilesRequestProcessor也是继承自[org.apache.struts.action.RequestProcessor]的,也就是说你要么用Seasar(没有Tiles),要么用其他的Web框架,不用Seasar。可是,我们偏偏什么都想要,谁叫我们贪心呢!


问题已经提出,其实要解决这个问题也很简单,我们为什么不自作一个ResutstProcessor,让他既有S2RequestProcessor的功能,又有TilesRequestProcessor的功能呢?
请按照下面一步步做:
1.下载到S2RequestProcessor的源码。你可以去Seasar的官方网站
2.下载到TilesRequestProcessor的源码。你可以去Apache的官方网站
3.创建一个名叫S2TilesResutstProcessor的类,让他继承TilesRequestProcessor,然后我们把S2RequestProcessor里的所有代码都复制进S2TilesResutstProcessor,接着我们把TilesRequestProcessor中的processForwardConfig和processTilesDefinition两个函数也复制进S2TilesResutstProcessor,并保证他们能编译通过。


OK,完成上面三步,他就是名副其实的S2TilesResutstProcessor了。

把他引入你的struts-config.xml吧

<controller
    maxFileSize="1024K"
    bufferSize="1024"
    processorClass="你的
    S2TilesResutstProcessor类 "
    multipartClass="org.seasar.struts.upload.S2MultipartRequestH"/>

接着再导入TilesPlugin

<plug-in className="org.apache.struts.tiles.TilesPlugin">
    <set-property
        property="definitions-config"
        value="/WEB-INF/conf/struts/tiles/tiles-defs-xxx.xml
        value="/WEB-INF/conf/struts/tiles/tiles-defs-yyy.xml />
    <set-property
        property="moduleAware"
        value="true"/>
</plug-in>

试试看吧。


希望这篇文章能够帮助到必须用Seasar,又必须用TilesPlugin的各位朋友。


如果要转载,请注明出处(http://blog.sina.com.cn/u/2198971017)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值