spring+velocity做页面的静态化

 公司做产品库,因为涉及到的产品都是一些参数信息的提供.非常适合做静态化来减少系统的访问压力.

 产品生成静态页面的底层处理是这样设计的:

       根据产品中的模板ID到系统中查找相应的VM页面.读入VM页面再使用velocity的功能生成HTML页面.

因为想把整个产品生成静态页面的处理流程做成与产品无关.使用toolbox来提取数据.因为velocity本身是

支持toolbox取数据的.

      配置好spring后,也可以在VM页面使用toolbox上面配置的方法.但是到了静态页面生成的时候竞然取

不到上面配置的方法.

     通过梳理整个产品信息页面静态化的过程,发现VM页面数据的合成流程是我们自己处理的,与Servlet的

VM流程是两个完全不一样的流程,也就是我们的流程是可以脱离WEB运行的.

     通过追查velocitytools的源代码,我们发现velocityservlet处理toolbox时把WEB容器的元素引入了.

比如说:request,application.后来观察toolbox.xml文件的时候,发现有一个scope的字段指定配置对象

的生命周期[application,request,session].这里我们就可以看出,整个toolbox是与WEB容器紧密关联

的。

    通过观察velocityservlet的源代码,我们发现toolbox其实就是把键值存入context上去,自己实例化

一个对象出来。

    到这我们就有自己的解决方案了。自己写程序读取toolbox.xml文件,把生命周期为application的配置

注入到我们的静态页面生成过程中来。

   xml文件的解析使用apache digest,toolbox.xml文件的读取使用spring的classpathresource读取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值