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:模板引擎
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
随机推荐
- thinkphp 相关
路径重写,既模式2 需要.htaccess文件放到index.php同级, http.config文件 中当前项目目录配置 AllowOverride All LoadModule rewrite_ ...
- Window随笔 - Windows Server 2012 評估版與延長使用期限【转载】
Windows Server 2012 評估版與延長使用期限 下載與安裝 至 微軟的評估中心 下載 Windows Server 2012 SP1 180 天軟體試用版 (Windows Server ...
- 用 Flask 来写个轻博客 (33) — 使用 Flask-RESTful 来构建 RESTful API 之二
Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 构建 RESTful Flask API 定义资源路由 格式 ...
- 如何高效地学好R语言?
如何高效地学好R语言? 学R语言主要在于5点三阶段: 第一阶段有一点:基础的文件操作(read.*, write.*).数据结构知识,认识什么是数据框(data.frame).列表(list).矩阵( ...
- latex的资料ftp
ftp://ftp.tex.ac.uk/ctan/tex-archive/ ftp ftp.tex.ac.uk anonymous ls
- 4.jmeter在线并发的怎样设置
4.1Jmeter 快速入门教程(一) - 认识jmeter和google插件 4.2Jmeter 快速入门教程(二)--创建简单web测试 打印 E-mail 4.3Jmeter 快速入门教程(三- ...
- 银行贷款(dp)
链接:https://www.nowcoder.com/acm/contest/79/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536KS ...
- 48.Course Schedule(课程安排)
Level: Medium 题目描述: There are a total of n courses you have to take, labeled from 0 to n-1. Some c ...
- mySQL的表连接
一.mysql表的连接方式 内连接和外连接的区别: 我把两个表比作集合A.B,其中,内连接是集合A和集合B的交集,而交集的内容在两个表中都存在,即在每一个表的内部:而外连接则是除了交集外,还有另一个表 ...
- Python之实现迭代器协议
什么是迭代器: --迭代器(迭代就是循环) 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator 可迭代对象有: 一类是集合数据类型,如list,tuple,dict,set ...