ASP 模板引擎,ASP 模板类 (Taihom.Template.class)
如想获取最新的这个类,可以写邮件给我
'//ASP 模板引擎 (Taihom.Template.class v2.0)
'//Code By Taihom
'//Taihom 原创
'//版权说明
'//本类允许转载、复制和修改,但转载、复制和修改的同时请保留原始的出处和作者声明,这也是对作者Taihom劳动成果的一种尊重!
'//如果您对本类进行修改,希望您也可以给我发一份您修改过后的类(taihom[@]163.com) 如想获取最新的这个类,可以写邮件给我
本类支持单标签,支持简单的逻辑,支持嵌套模板,支持循环列表,支持循环列表的逻辑,支持自定义标签,支持自定义标签属性和自由获取标签……
先看看说明!
模板类的标签规则 | 说明 | |
标签边界: | {}、() |
{@}是单标签 {}是类标签,主要是应用在{include("...")}和{if ...}...{else}...{/if} <loop ...><.../loop>循环标签 |
包含文件: | {include("文件路径")} | 该模板类支持包含同模板目录下的文件,例如 {include("head.html")} |
单标签: |
{@标签名} {@标签名 属性="值"} (@字段名)、(@字段下标) |
(@...)单标签只能应用在loop块 |
逻辑标签: |
{if @标签变量=="值"} 代码块 {else} 代码块 {/if} {if @标签变量=="值"} 代码块 {/if} |
可以处理一些简单的逻辑关系 , v2.0开始支持逻辑标签的条件支持,运算符号前后均可支持标签和带属性的标签, |
循环标签: |
<loop 属性1="值1" 属性2="值2" ... > 代码块 (@数字)(@字段名 属性="") </loop> |
这里要注意的是 <loop> 标签部分一定要换行之后再写代码块, 循环块有一个保留属性 name="块名字" 除了这个,想定义什么自定义属性都可以 如果输出的结果为空,那么如何自定义自己的输出结果呢?很简单,只要在loop标签里面加一个empty标签:例如: <loop name="loop3" sql="select * from [table] where 1=2"> |
模板引擎的默认属性支持,你也可以修改程序加上自己定义的属性 这些属性可以应用在单标签上 |
||
截取字符 | len="数字" | 例如:{@title len="5"} 这样将会截取@title前面5个字符作为输出 |
返回字符串长度 | return="len" | 例如:{@content return="len"} 将返回这个变量的字符串长度 |
清除HTML格式 | return="clearhtml" | 例如:{@content return="clearhtml"} 这样将会清除@content输出的HTML格式 |
清除所有空格换行 | return="clearspace" |
例如:{@content return="clearspace"} 这样将会清除@content输出的所有的空格和换行 多个return的时候可以用逗号分隔 例如:return="clearhtml,clearspace" |
清除所有的格式 | return="clearformat" | 这样只会保留文字,连HTML格式,换行什么都没有了 |
返回字符串的server.urlencode | return="urlencode" | {@content return="urlencode"} 将返回与ASP中server.urlencode("字符串")一致的结果 |
日期显示方式转换 | dateformat="日期显示方式" |
年(yyyy|yy)月(mm|m)日(dd|d) 时(HH|H)分(MM|M)秒(SS|S)星期(w|W) 默认支持的方式有 其他的日期格式化方式,可以参照下面的例子: |
模板类的使用例子,假设已经实例化到tpl | ||
类的功能 | 方法 | 说明 |
设置 |
'配置信息 'tpl.setCharset = "utf-8" '可选设置,默认是utf-8 'tpl.setCache = 1 '可选设置,缓存开关,默认是关的 tpl.SITE_ROOT = cStr(Server.MapPath("./"))'必选设置,后面不带斜杠 'tpl.setTemplatedir = "/templates/"'可选设置,设置模板目录 'tpl.setCachedir = "/cache/templates/"'可选设置,设置缓存目录 'tpl.setAbsPath = 1 '可选设置,模板绝对路径,默认是开的,作用是输出的时候将模板相对路径替换成绝对路径,已经是绝对路径或者描点等不受影响,此开关只是转换那些不是绝对路径的 'tpl.CachePageTimeout=0'(v2.0新特性)可选设置,0=不生产前台页面缓存,>0表示缓存的时间,单位是分钟 ,这个设置需要在页面开头,也就是在赋值之前设置,如果不设置,默认不缓存,建议数据有实时更新的不进行设置 tpl.path = "index.html"'必选,模板文件路径相对于模板目录 |
|
加载并解析模板 | tpl.load() |
'加载模板,这个方法负责读取并且解析模板, 当然,如果你不需要提取模板的参数,你可以放到.display()之前 例如: tpl.load() tpl.display() |
提取所有块标签 | Set getblock = tpl.getblock |
'获得块列表,返回dic对象,key = 循环块名称,items = 块的属性(数组,0=属性名称,1=值) 例子: |
指定块标签的属性 | Set getattr = tpl.getattr |
如果你想提取块名字是loop1的sql的内容 那么只要 getattr("loop1.sql") |
标签赋值 | tpl.add("@标签")="值" | 设置标签的值,也就是用这个值来替换掉{@标签} |
块标签赋值 | tpl.add("块标签")=记录集 | 设置循环块的值,这里我们只要给一个记录集,其他的输出,由模板去执行,也不用判断记录集是否为空。 |
显示输出 | tpl.display() | '显示模板,将结果输出 |
清除缓存 | tpl.ClearCache | 如果设置了模板缓存,用这个将可以清除所有的模板缓存,对于不常修改的模板,我建议开启缓存。当然如果模板有改动,必须要清空了缓存,缓存才会重建 |
程序中获取输出结果 | html = tpl.gethtml | 将输出的结果赋值给html变量,这里的结果是已经是最后的输出结果 |
生成静态页面 | tpl.OutPutPage(cStr(Server.MapPath("./"))) = "asdf.html" | 如果需要生成静态页面,使用 .OutPutPage("路径")=文件名 |
完整的类使用方法(来自demo.asp) | ||
<script language="vbscript" runat="server"> Dim dbo '//-------这里是使用该类的例子 tpl.path = "index.html"'必选,模板文件路径相对于模板目录 '输出的数据变量 '获得循环块的参数 Dim sql1 : sql1 = getattr("loop1.sql")'获取loop1块的sql属性 '循环块内容输出 tpl.display()'显示模板 '--------------清楚所有模板缓存 '--------------获取输出的代码 '--------------将结果生成静态页面 dbo.close |
||
代码在这里下载:如想获取最新的这个类,可以写邮件给我
演示地址:http://www.taihom.com/templateclass/demo.asp
模板地址:http://www.taihom.com/templateclass/templates
代码下载:http://www.taihom.com/templateclass/taihom.template.class.rar
最新的下载: http://download.csdn.net/source/1330402
转载于:https://www.cnblogs.com/taihom/archive/2009/05/20/1467781.html
ASP 模板引擎,ASP 模板类 (Taihom.Template.class)相关推荐
- Django 模板引擎以及模板
2019独角兽企业重金招聘Python工程师标准>>> 在Django框架中,可以使用两种模板引擎,一种是默认的Django模板引擎,还有一种是Jinja2模板引擎: 1.模版引擎的 ...
- Flask 框架下 Jinja2 模板引擎高层 API 类——Environment
Environment 类版本: 本文所描述的 Environment 类对应于 Jinja2-2.7 版本. Environment 类功能: Environment 是 Jinja2 中的一个核心 ...
- html模板引擎 字符串长度,Web前端模板引擎の字符串模板
这是一个系列文章,将会介绍目前Web前端领域里用到的三种模板引擎技术,它们分别是: 基于字符串的模板 基于Dom操作的模板 基于虚拟Dom的模板 本文是这个系列的第一篇,着重介绍基于字符串的模板引擎的 ...
- php smarty 原理,php模板原理PHP模板引擎smarty模板原理浅谈
mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职.无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利. 我们在php开发中,视图层view是不允许有ph ...
- 工具集核心教程 | 第五篇: 利用Velocity模板引擎生成模板代码
前言 不知道大家有没有这样的感觉,在平时开发中,经常有很多dao.service类中存着很多重复的代码,Velocity提供了模板生成工具,今天我教大家怎么和这些大量的重复代码说再见. 参考项目:ht ...
- php开发自己的模板引擎,如何用PHP来编写自己的模板引擎 - PHP|模板引擎 - 软件工程|架构设计|网站设计|艺术营销 - 河洛炎黄 - 魏文侯...
本文的目的不是为了让大家学会如何编写一个完善的模板引擎,只是为了给PHP初学入门者解释模板引擎的原理和作用. PHP模板引擎的作用是为了让表现层逻辑和页面本身分开,让程序员和美工的工作可以相对独立,并 ...
- 前端模板引擎(jQuery模板)jsrender的基本教程
转载:原文链接:https://www.jianshu.com/p/3151d2256410 jsrender官网号称简单直观.强大轻快可扩展.压缩体积也只有8.9kb,可以单独在浏览器或node中使 ...
- java调用js模板引擎_JavaScript模板引擎应用场景及实现原理详解
本文实例讲述了JavaScript模板引擎应用场景及实现原理.分享给大家供大家参考,具体如下: 一.应用场景 以下应用场景可以使用模板引擎: 1.如果你有动态ajax请求数据并需要封装成视图展现给用户 ...
- java模板引擎 jade_Jade 模板引擎使用
在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...
最新文章
- 激光雷达Lidar与毫米波雷达Radar:自动驾驶的利弊
- hybird 跨平台移动app开发
- 轻触开源(一)-Java泛型Type类型的应用和实践
- php多条件检索怎么写,sql查询同时满足三个条件 php查询数据库,同时满足三个条件的sql怎么写?...
- Servlet期末复习二
- 天勤计算机考研高分笔记(一)绪论1数据结构
- ereg/eregi报错处理办法
- 程序员如何写好设计方案
- Python库详解。python有那些库你都知道了嘛?
- Arcgis实例操作9--空间分布趋势图、分割多部分要素、导出矢量数据的文本文件
- esp32-Arduino开发学习
- win7原版iso_【JUJUMAO_MSDN系统】Windows 10 1903 64位 五版合一 原版ISO镜像
- pdf.js 修改预览页面title
- grunt从入门到自定义项目模板
- AI优秀开源项目总结
- Spring笔记(4):响应式编程、Reactor、WebFlux、Flow
- 上海浦东新区计算机专科学校,上海|专科
- 先进工艺22nm FDSOI和FinFET简介
- 惠普m1005mfp说明书_惠普HP LASERJET M1005一体机怎么使用?
- 易语言开发-托盘图标和菜单的实现