VTemplate模板引擎的使用--入门篇
1、什么是VTemplate模板引擎?
2、怎样使用VTemplate模板引擎?
第1步: 下载VTemplate模板引擎的最新库文件(从这里下载),下载回来后将库文件引入到你的项目中。
第2步: 针对你的目的设计好VT模板(如HTML页面)。
第3步: 根据VT模板在代码里实例化模板引擎对象,并处理相关的逻辑数据。
第4步: 输出模板引擎的最终呈现数据(直接显示或存储到文件)
3、如何设计VT模板?
设计VT模板其时就是在于如何设计VT模板元素,类似于你设计HTML页面时如何设计那些HTML标签元素一样。而设计VT模板,则主要是将那些你觉得应该要时常改变数据的地方设计为VT模板元素。比如针对单数据变动的地方(如文章的标题、内容),则设计变量元素;针对列表数据变动的地方(如文章排行、栏目列表等数据),则设计循环元素(for或foreach标签元素)
注:关于VT模板元素请参考这文章的第3点以下的内容。
下面让我们来做一个例子,设计一个类似于博客园中的日志页面(也就是你现在看到的这个页面)的VT模板。页面效果如下:
日记的内容
评论列表
页面HTML代码如下:
<div class=”bloglog”><strong>日记的标题区</strong>
<hr class=”blogsplit”/>
日记的内容
<div style="margin-bottom: 20px" align="right">posted @ 2008-06-19 10:31 Kingthy 阅读(1) 评论(2)</div>
<strong>评论列表</strong> <hr class=”blogsplit”/>
<div class=”blogcomment”>#1楼 2008-06-19 11:14 | 张三 </div>
<div style="padding-left: 20px">沙发</div>
<hr class=”blogsplit”/>
<div class=”blogcomment”>#2楼 2008-07-19 11:14 | 李四 </div>
<div style="padding-left: 20px">顶楼主</div>
<hr class=”blogsplit”/>
<div class=”blogcomment”>#3楼 2008-08-19 11:14 | 王五 </div>
<div style="padding-left: 20px">板凳啊</div> </div>
观察上面HTML代码中已被加背景色的区域,对于博客系统来说,显示博客日记的页面大概需要变动的地方就只有上面已加背景色的地方,因此只要将上面变动的地方设计为VT模板元素即可。对于黄色区域,只是单数据变动地方,则只要设计为变量元素;对于绿色区域,是显示评论数据列表,所以需要设计为循环元素,如用foreach标签元素。最终设计好的VT模板如下(各位可上下对比一下黄色与绿色背景区域的不同):
<div class=”bloglog”><strong>{$:blogarchive.title htmlencode=”true”}</strong>
<hr class=”blogsplit”/>
{$:blogarchive.content}
<div style="margin-bottom: 20px" align="right">posted @ {$:blogarchive.time format=”yyyy-MM-dd HH:mm”} {$:blogarchive.author htmlencode=”true”} 阅读(1) 评论(2)</div>
<strong>评论列表</strong> <vt:foreach from=”$blogarchive.comments” item=”#.comment” index=”#.floor”> <hr class=”blogsplit”/>
<div class=”blogcomment”>#{$:#.floor}楼 {$:#.comment.time format=”yyyy-MM-dd HH:mm”} | {$:#.comment.author htmlencode=”true”} </div>
<div style="padding-left: 20px">{$:#.comment.content htmlencode=”true”}</div>
</vt:foreach> </div>
4、怎么使用VT模板?
利用我们上面设计好的VT模板,我们实例化VTemplate模板引擎的里的模板文档对象TemplateDocument。
假如我们的VT模板保存在blogarchive.html文件里,则实例化代码如下:
或者我们从缓存模板里构造实例:
到此,我们就可以使用document对象来操作VT模板变量里的元素对象了,比如对VT模板里红色的blogarchive变量赋于某篇博客日记数据,如下:
document.Variables.SetValue("blogarchive", this.GetBlogArchive());
注:对于GetBlogArchive()方法,则只是一个获取数据实体的函数,比如从数据库获取的数据实体。
经过这简单的两步操作,我们就已完成了对VT模板的操作,剩下就是“告诉”模板引擎将数据呈现出来,我们的博客日记页面就做好了;)是不是很简单?
document.Render(context.Response.Output);
注:本篇的例子代码摘自VTemplate.WebTester项目下的blogarchive.ashx文件
VTemplate项目托管在Google code上。
URL: http://net-vtemplate.googlecode.com/
SVN: http://net-vtemplate.googlecode.com/svn/src/VTemplate.Engine/
更多例子请参考VTemplate.WebTester项目:
http://net-vtemplate.googlecode.com/svn/src/VTemplate.WebTester/
或观看在线演示例子:(感谢网友“DOLT”、“疯子” 提供)
http://61.155.39.222:8888/index.ashx
注:已建立VTemplate模板引擎技术交流QQ群,欢迎各位加入参与项目开发或技术探讨。QQ群:884468
VTemplate模板引擎的使用--入门篇的更多相关文章
- VTemplate模板引擎的使用--高级篇
VTemplate模板引擎的使用--高级篇 在网站中,经常会有某个栏目的数据在多个页面同时使用到.比如新闻网站或电子商务网站的栏目列表,几乎在很多页面都会显示栏目导航.对于这种多个页面同时使用到的“数 ...
- VTemplate模板引擎的使用--进阶篇
1.<vt:template>与<vt:include>标签的不同 <vt:template>和<vt:include> 标签都包含file属性,如果这 ...
- 使用VTemplate模板引擎动态生成订单流程图
1.VTemplate模板引擎的简介 VTemplate模板引擎也简称为VT,是基于.NET的模板引擎,它允许任何人使用简单的类似HTML语法的模板语言来引用.NET里定义的对象.当VTemplate ...
- 模板引擎:ArtTemplate 使用入门和简单的使用
下载地址:https://github.com/aui/artTemplate 快速上手请参考:https://github.com/aui/artTemplate 通过阅读artTemplate原文 ...
- Beetl学习总结(1)——新一代java模板引擎典范 Beetl入门
1. 什么是Beetl Beetl目前版本是2.7.0,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点.使得开发和维护模板有很好的体验.是新一代的模板引擎. ...
- 基于.NET的免费开源的模板引擎---VTemplate(转)
1.VTemplate模板引擎的简介 VTemplate模板引擎也简称为VT,是基于.NET的模板引擎,它允许任何人使用简单的类似HTML语法的模板语言来引用.NET里定义的对象.当VTemplate ...
- JS模板引擎 :ArtTemplate (2)
上一篇初略的介绍了一下javascript中的模板引擎,有兴趣的可以戳 这里 . 这一篇将带着大家一起做一个简易的模板引擎, 上一篇介绍到:模板引擎其实做的就是两件事. 根据一定的规则,解析我们所定义 ...
- JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎
上篇博客我们聊了<JavaEE开发之SpringBoot工程的创建.运行与配置>,从上篇博客的内容我们不难看出SpringBoot的便捷.本篇博客我们继续在上篇博客的基础上来看一下Spri ...
- .NET Core/.NET5/.NET6 开源项目汇总13:模板引擎
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
随机推荐
- 2.2寸(14PIN)TFT液晶屏STM32 SPI 控制
屏幕如图所示,共14个IO口(也可能只有13个),控制屏幕的有9个IO口 详细版介绍见:http://www.ciast.net/post/20151112.html 反面IO口图: 连接通过SPI方 ...
- [MAC]配置Jenkins 开机自启动
如果是将jenkins.war放在tomcat中运行的, 则可以配置开机启动tomcat,脚本如下: XXX表示是你安装Tomcat所在目录 #启动tomcat cd XXX/Tomcat8/bin ...
- python分类预测模型的特点
python分类预测模型的特点 模型 模型特点 位于 SVM 强大的模型,可以用来回归,预测,分类等,而根据选取不同的和函数,模型可以是线性的/非线性的 sklearn.svm 决策树 基于" ...
- apm 应用性能管理(启动优化/ 掉帧卡顿/ 耗电/ 内存泄漏等)
APM 首先查看各个阶段耗时 : (环境变量设置 dyldPRINTSTATISTICS = 1选项,) 1. 启动优化 关键: 找到耗时的原因 t总 = t1 (premain) + t1(main ...
- swoole 安装与简单应用
方法一:PECL安装 安装依赖包 apt-get install libpcre3 libpcre3-dev 安装swoole pecl install swoole 修改PHP配置 php.ini ...
- [题解]Shorten IPv6 Address-模拟(2019牛客多校第六场B题)
题目链接:https://ac.nowcoder.com/acm/contest/886/B 题意: 您将获得一个IPv6地址,该地址是128位二进制字符串.请根据以下规则确定其最短的表示: 以十六进 ...
- python面试如何以相反顺序展示一个文件的内容?
>>> for line in reversed(list(open('Today.txt'))): print(line.rstrip())containeritertools D ...
- Python之执行精确的浮点数运算
有时候:代码上数字计算可能会有如同下面的误差 原因: 这些错误是由底层CPU和IEEE 754标准通过自己的浮点单位去执行算术时的特征. 由于Python的浮点数据类型使用底层表示存储数据,因此你没办 ...
- React-Native初识-安卓篇(一)
前言:React-Native简称RN,可以用来构建Android和IOS的应用程序,在接下来的两个半月里,我会记录下本人在学习RN开发项目中的点滴. 本篇目录: 1.React-Native初识 2 ...
- 怎么更新 WIN10里的SMBv1协议
控制面板 ---启用或关闭Windows功能---打开SMBv1服务: