zoukankan      html  css  js  c++  java
  • 升级到NVelocity1.1版本

    由于NVelocity项目太久没有升级了,虽然看到Velocity经常发布一些新的功能,但.net版本的修改似乎比较迟。以至于很少关注升级情况。由于前期使用这个模板引擎的时候发现对DataTable支持不太好,原先想自己修改一下源代码,但分析了一下源代码发现改不动,也没有精力去研究。(最近越来越懒了^_^

      开源代码及最新下载:http://sourceforge.net/projects/castleproject/files/

    今天看到Richie写的关于1.1的两篇文章发现新版本已经解决了我想要的支持。真是太高兴了,随即结合《Castle NVelocity - 1.1整理了一下相关的代码供大家参考。

       

    原先使用0.4X版本的时候其实也可以使用DataTable,但就是有些麻烦,我也是经过反复的测试后终于想到一个办法来处理,作法如下:需要循环行记录的情况下再循环列,然后根据列号把值写到变量里,相当的麻烦。

    #foreach($Item in $dtSubSortList.Rows)

    #set ($rownum = 0)

    #foreach($value in $Item.ItemArray)

    #set ($rownum = $rownum+1)

    #if($rownum == 1)

    #set($CATEGORY_ID = "$value")

    #end

    #if($rownum == 2)

    #set($CATEGORY_NAME = "$value")

    #end

       

    #end

    <tr> <td class="daoh_1"><div class="wenz_2"><a href="$!{WebRoot}cms/listPage.aspx?categoryId=$!{CATEGORY_ID}&parent=$!{categoryid}">$CATEGORY_NAME</a></div></td></tr>

    #end

    新版本的写法就非常的简单了:

    #foreach($Item in $dtSubSortList.Rows)

    <tr> <td class="daoh_1"><div class="wenz_2"><a href="$!{WebRoot}cms/listPage.aspx?categoryId=$Item.CATEGORY_ID">$Item.CATEGORY_NAME</a></div></td></tr>

    #end

    但现在不足的之处就是还不支持索引的写法,如$Item[0] 或者 $Item["字段名"]

       

    我整理的部分代码里封装了NVelocityHelper,并写一下模板页的基类PageBaseTemplate等内容,仅供大家参考。

    PageBase.cs

    这个属性可以通过一些扩展实现多级子站的模板定制功能(大家可以自己思考一下,我只是使用了目录的方式进行处理,应该还有其它更好的方法)。

       

       

    1.1版本的使用说明在《Castle NVelocity - 1.1 》有详细的说明,非常感谢。

       

    原代码及最新的组件都在这里: /Files/liubiqu/NVelocity1.1Demo.rar

       

    代码内容:

    由于时间关系还没有详细的研究,下列问题有待进一步测试:

    1、velocity.GetTemplate是否有提供一些缓存与优化的处理

    2、velocity.Evaluate的时候log的参数有什么用处及整合到其它日志方法

    3、在性能方面有没有更好的处理方式。

       

  • 相关阅读:
    4. Validator校验器的五大核心组件,一个都不能少
    如何快速提高数据库查询效率
    linux系统简介
    echo命令
    Linux-->基本查找及vim使用
    jmeter.5.4.1
    Shell文本处理三剑客:grep、sed、awk
    Linux 下的dd命令使用详解
    Linux添加硬盘和挂载两个命令fdisk和mount的使用
    Linux系统常用命令速查手册
  • 原文地址:https://www.cnblogs.com/liubiqu/p/1712126.html
Copyright © 2011-2022 走看看