惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
L
LINUX DO - 热门话题
月光博客
月光博客
B
Blog
博客园 - 叶小钗
美团技术团队
D
Docker
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
The Register - Security
The Register - Security
博客园_首页
The Cloudflare Blog
I
InfoQ
T
Tailwind CSS Blog
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Microsoft Azure Blog
Microsoft Azure Blog
有赞技术团队
有赞技术团队
C
CERT Recently Published Vulnerability Notes
AWS News Blog
AWS News Blog
Spread Privacy
Spread Privacy
V
Visual Studio Blog
博客园 - Franky
Cloudbric
Cloudbric
Help Net Security
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
News and Events Feed by Topic
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Webroot Blog
Webroot Blog
博客园 - 【当耐特】
TaoSecurity Blog
TaoSecurity Blog
B
Blog RSS Feed
N
News | PayPal Newsroom
人人都是产品经理
人人都是产品经理
H
Heimdal Security Blog
L
LangChain Blog
PCI Perspectives
PCI Perspectives
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
Schneier on Security
Schneier on Security

博客园 - 小草

mac系统及xcode使用的SVN客户端安装升级 快速升级App支持iOS6及iPhone5的4寸屏幕 尝鲜安装iOS6及新特性 Delphi处理Http请求自定义Header 浅谈项目与产品的区别 xcode4.2开发最新的ios5应用,分享snow版本下载地址 xCode 4.X 免证书真机发布及调试 第一个iPhone版本应用发布 【iPhone开发】说说Xcode4中xib绑定的原理 【iPhone开发】XCode4开发iPhone应用的体验 多机多屏显示器实战 存储过程与业务类实现业务的差异比较 业务逻辑实现方式的讨论:存储过程 good or bad? 浅析SAAS数据模型设计(Oracle) 安装VS2010中文版初体验 QQ邮箱里可以定阅博客园的文章了 解决Office 2010打开文件提示“文件已损坏,无法打开。”的问题 突破电信3G宽带对网页浏览的上网限制 华为EC1261使用小记
升级到NVelocity1.1版本
小草 · 2010-04-14 · via 博客园 - 小草

由于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、在性能方面有没有更好的处理方式。