如果你将要继续深入的看这篇文章,我将假设你已经对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了。
接着再导入TilesPlugin
试试看吧。
希望这篇文章能够帮助到必须用Seasar,又必须用TilesPlugin的各位朋友。
如果要转载,请注明出处(http://blog.sina.com.cn/u/2198971017)
如果不是,我建议你先看看去了解一下他们的相关技术再来。
下面我们开始。
我们要求的并不仅仅是支持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)