给持续集成工具cruisecontrol增加分页功能

    cruisecontrol(v2.1?)的插件比如pclint,它的执行结果页面没有分页显示. 其实这大大影响了cruisecontrol的应用. 你想一下,比如某legacy项目想试试持续集成, 第一次用pclint等等工具检查的时候,极有可能会出现大量错误. 如果有十万条pclint错误,这个结果页面将有十几m的大小,不仅页面下载要很多时间,ie解析页面也要很久,页面很容易死掉.
    根据我多年的企业应用经验,分页是必然选择. 我采用了这样一个策略: xlst+jsp分页. 我知道这样不如在取数据的时候就分页效率高. 但是当时在单位我没有对应的源代码,而且不方便修改替换类包,所以采取了修改jsp文件和xslt文件.
    它的结果页面是由一个jsp处理的. jsp获取xml格式数据文件,然后由配置好的插件的xslt文件去解析这个数据文件,生成显示页面.
    我在xslt里面增加了几个属性:当前页号,每页几条数据,共几页,共几条. 然后根据这些属性修改了xslt解析方式,只显示当前页面的内容,并且增加了上一页下一页等按钮.
    然后在jsp上面hack一下, 把这些属性加在请求url后面, 传递给xslt. 并且添加了上一页下一页按钮需要的函数.
    上面这些步骤就是分页所需要的处理. 虽然以前没有开发过xslt,但是很轻松就搞定了xslt分页. 正所谓触类旁通,一通百通.
    最后还hack了一个地方. 就是cruisecontrol对结果页面的缓存. 缓存跟分页是一对矛盾. 我采用的这个方案无法使缓存和分页调和在一起,只好把cruisecontrol的结果页面缓存禁止了. 

猜你喜欢

转载自415146947-qq-com.iteye.com/blog/898607
今日推荐