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模板。页面效果如下:

日记的标题区

日记的内容

posted @ 2008-06-19 10:31 Kingthy 阅读(1) 评论(2)

评论列表


#1楼 2008-06-19 11:14 | 张三
沙发

#2楼 2008-07-19 11:14 | 李四
顶楼主

#3楼 2008-08-19 11:14 | 王五
板凳啊

页面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文件里,则实例化代码如下:

TemplateDocument document = new TemplateDocument(context.Server.MapPath("template/blogarchive.html"), Encoding.UTF8);

或者我们从缓存模板里构造实例:

TemplateDocument document = TemplateDocument.FromFileCache(context.Server.MapPath("template/blogarchive.html"), Encoding.UTF8);

到此,我们就可以使用document对象来操作VT模板变量里的元素对象了,比如对VT模板里红色的blogarchive变量赋于某篇博客日记数据,如下:

//对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模板引擎的使用--入门篇的更多相关文章

  1. VTemplate模板引擎的使用--高级篇

    VTemplate模板引擎的使用--高级篇 在网站中,经常会有某个栏目的数据在多个页面同时使用到.比如新闻网站或电子商务网站的栏目列表,几乎在很多页面都会显示栏目导航.对于这种多个页面同时使用到的“数 ...

  2. VTemplate模板引擎的使用--进阶篇

    1.<vt:template>与<vt:include>标签的不同 <vt:template>和<vt:include> 标签都包含file属性,如果这 ...

  3. 使用VTemplate模板引擎动态生成订单流程图

    1.VTemplate模板引擎的简介 VTemplate模板引擎也简称为VT,是基于.NET的模板引擎,它允许任何人使用简单的类似HTML语法的模板语言来引用.NET里定义的对象.当VTemplate ...

  4. 模板引擎:ArtTemplate 使用入门和简单的使用

    下载地址:https://github.com/aui/artTemplate 快速上手请参考:https://github.com/aui/artTemplate 通过阅读artTemplate原文 ...

  5. Beetl学习总结(1)——新一代java模板引擎典范 Beetl入门

    1. 什么是Beetl Beetl目前版本是2.7.0,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点.使得开发和维护模板有很好的体验.是新一代的模板引擎. ...

  6. 基于.NET的免费开源的模板引擎---VTemplate(转)

    1.VTemplate模板引擎的简介 VTemplate模板引擎也简称为VT,是基于.NET的模板引擎,它允许任何人使用简单的类似HTML语法的模板语言来引用.NET里定义的对象.当VTemplate ...

  7. JS模板引擎 :ArtTemplate (2)

    上一篇初略的介绍了一下javascript中的模板引擎,有兴趣的可以戳 这里 . 这一篇将带着大家一起做一个简易的模板引擎, 上一篇介绍到:模板引擎其实做的就是两件事. 根据一定的规则,解析我们所定义 ...

  8. JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎

    上篇博客我们聊了<JavaEE开发之SpringBoot工程的创建.运行与配置>,从上篇博客的内容我们不难看出SpringBoot的便捷.本篇博客我们继续在上篇博客的基础上来看一下Spri ...

  9. .NET Core/.NET5/.NET6 开源项目汇总13:模板引擎

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

随机推荐

  1. Nginx反向代理维基百科镜像制作全解析

    近日做的Ngnx代理测试,基于Nginx的ngx_http_substitutions_filter_module模块,并利用UA跳转实现PC/移动端不同站点跳转. 1. 关于Nginx的代理详细请转 ...

  2. java并发编程笔记(六)——AQS

    java并发编程笔记(六)--AQS 使用了Node实现FIFO(first in first out)队列,可以用于构建锁或者其他同步装置的基础框架 利用了一个int类型表示状态 使用方法是继承 子 ...

  3. Python Django 编写一个简易的后台管理工具2-创建项目

    django-admin 创建项目 pycharm 创建项目

  4. linux查看日志中特定字符串以及前后信息内容命令

    在项目实施过程中,我们经常会查看日志,更是经常会根据某些特地字符串去查找日志内容. 下面就是日志查找命令: 1.查询字符串命令: cat fileName|grep '要查找的字符串' 实例:cat ...

  5. python post 发送字符串

    python post 发送一段字符串 把字符串写在表单里,表单用字典格式,字符串作value import requests data={key:str} r=requests.post(url,d ...

  6. Spring Boot & Redis 用起来真简单!

    作者:java_老男孩  https://blog.51cto.com/14230003/2368721 Redis 是目前业界使用最广泛的内存数据存储.相比 Memcached,Redis 支持更丰 ...

  7. Linux下MySQL Error 1130 不能远程访问(转)

    Linux下MySQL Error 1130 不能远程访问 内容简介:远程连接MySQL时总是报出erro 2003: Can't connect to MySQL server on '211.87 ...

  8. Codefores 507D The Maths Lecture( 数位DP )

    D. The Maths Lecture time limit per test 1 second memory limit per test 256 megabytes input standard ...

  9. 【转】在配置静态IP的时候遇到 :bringing up interface eth0 : error unknown connection

    首先这是动态ip配置成功的结果 接下来切换到root用户来配置静态的 按照静态ip的配置方法配置好文件后(具体过程这里就不多加说明) 然后保存退出 当我们重启网卡的时候问题来了(因为本人有点强迫症,多 ...

  10. Excel_PowerQuery——秒杀Vlookup的表合并

    终于,Power Query的第二弹来了,距离上一次PQ更博,已经将近半年. Excel_PoweQuery——条件计数.条件求和 使用PQ进行表格数据的连接合并是一件畅快的事情. 下面的数据是我随机 ...