使用模板实现ASP代码与页面分离(3)
作者:彭国辉 发布时间:2008-09-12 16:07:00
标签:模板,静态,类,asp
3、使用例子
下面举三个例子进行说明。
1)简单的值替换
模板文件为myTemple.tpl,内容:
<html><title>ASP模板简单替换</title><body>
祝贺!你赢了一辆{some_color}法拉利!
</body>
下面是ASP代码(kktTemplate.inc.asp就是上面给出的模板类):
<!--#INCLUDE file="kktTemplate.inc.asp"-->
<%
dim my_color, kkt
my_color = "红色的"
set kkt = new kktTemplate '创建模板对象
kkt.set_file "hndKktTemp", "myTemple.tpl" '设置并读取模板文件myTemple.tpl
kkt.set_var "some_color", my_color, false '设置模板变量 some_color = my_color的值
kkt.parse "out", "hndKktTemp", false '模板变量 out = 处理后的文件
kkt.p "out" '输出out的内容
set kkt = nothing '销毁模板对象
%>
执行后输出为:
<html><title>ASP模板简单替换</title><body>
祝贺!你赢了一辆红色的法拉利!
</body>
2)循环块演示例子
模板文件myTemple2.tpl:
<html><title>ASP模板-块的演示</title><body>
<table cellspacing="2" border="1"><tr><td>下面的动物您喜欢哪一种</td></tr>
<!-- BEGIN AnimalList -->
<tr><td><input type="radio" name="chk">{animal}</td></tr>
<!-- END AnimalList -->
</table>
</body>
ASP代码:
<!--#INCLUDE file="kktTemplate.inc.asp"-->
<%
dim animal, kkt, i
animal = Array("小猪","小狗","小强")
set kkt = new kktTemplate
kkt.set_file "hndKktTemp", "myTemple2.tpl"
kkt.set_block "hndKktTemp", "AnimalList", "list"
for i=0 to UBound(animal)
kkt.set_var "animal", animal(i), false
kkt.parse "list", "AnimalList", true
next
kkt.parse "out", "hndKktTemp", false
kkt.p "out"
set kkt = nothing
%>
执行结果:
<html><title>ASP模板-块的演示</title><body>
<table cellspacing="2" border="1"><tr><td>下面的动物您喜欢哪一种</td></tr>
<tr><td><input type="radio" name="chk">小猪</td></tr>
<tr><td><input type="radio" name="chk">小狗</td></tr>
<tr><td><input type="radio" name="chk">小强</td></tr>
</table>
</body>
3)嵌套块演示
模板文件myTemple3.tpl:
<html><title>ASP模板-嵌套块演示</title>
<body><table width="400" border="1" bordercolor="#000000">
<tr><td><div align="center">{myname}测试</div></td></tr>
<tr><td>我的动植物园:</td> </tr>
<!-- BEGIN animalList -->
<tr><td>{animal}</td></tr>
<!-- BEGIN plantList -->
<tr><td> {plant}</td></tr>
<!-- END plantList -->
<!-- END animalList -->
</table>
</body>
</html>
ASP代码:
<!--#INCLUDE file="kktTemplate.inc.asp"-->
<%
dim my_color, kkt, myname, animal, plant
set kkt = new kktTemplate
myname = "kktTemplate block test..."
animal = array("动物", "植物")
plant = array(array("小猪","小白","小强"), array("玫瑰","向日葵"))
kkt.set_file "hndKktTemp", "myTemple3.tpl"
kkt.set_var "myname", myname, false
kkt.set_block "hndKktTemp", "animalList", "a"
kkt.set_block "animalList", "plantList", "p"
for i=0 to UBound(animal)
kkt.set_var "animal", animal(i), False
kkt.unset_var "p"
'kkt.set_var "p", "", false
for j=0 to UBound(plant(i))
kkt.set_var "plant", plant(i)(j), false
kkt.parse "p", "plantList", true
next
kkt.parse "a", "animalList", true
next
kkt.parse "out", "hndKktTemp", false
kkt.p "out"
%>
执行结果:
<html><title>ASP模板-嵌套块演示</title>
<body><table width="400" border="1" bordercolor="#000000">
<tr><td><div align="center">kktTemplate block test...测试</div></td></tr>
<tr><td>我的动植物园:</td> </tr>
<tr><td>动物</td></tr>
<tr><td> 小猪</td></tr>
<tr><td> 小白</td></tr>
<tr><td> 小强</td></tr>
<tr><td>植物</td></tr>
<tr><td> 玫瑰</td></tr>
<tr><td> 向日葵</td></tr>
</table>
</body>
</html>
4、小结
本文主要介绍了基于ASP利用模板类实现代码与页面分离的方法,当然还有其它更好的解决方案。本文旨在抛砖引玉各位读者、WEB开发参与进来,多提宝贵意见,多作交流,共同进步!


猜你喜欢
- 线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此
- 表数据导出到一个文本文件最简单的方法是使用SELECT... INTO OUTFILE语句的查询结果直接导出到一个文件在服务器主机上。导出数
- 一、前言介绍xlrd:可以对xlsx、xls、xlsm文件进行读操作且效率高。xlwt:主要对xls文件进行写操作且效率高,但是不能执行xl
- 在实际写程序中,经常要对变量类型进行判断,除了用type(变量)这种方法外,还可以用isinstance方法判断:a = 1b = [1,2
- 1 自动化测试自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为
- 前言使用python实现设计模式中的单例模式。单例模式是一种比较常用的设计模式,其实现和使用场景判定都是相对容易的。本文将简要介绍一下pyt
- 前言这是一个轮子。大家都知道 Ansible 是功能超级强大的自动化运维工具,十分的高大上。太高大上了以至于在低端运维有点水土不服,在于三点
- 阅读别人的python源码时碰到了这个yield这个关键字,各种搜索终于搞懂了,在此做一下总结:通常的for...in...循环中,in后面
- 多的不说,看了代码就懂了!df = pd.DataFrame ({'a' : np.random.randn(6), &nb
- 本文较为详细的分析了Python解释执行的原理,对于深入理解Python可以起到一定的帮助作用。具体分析如下:首先,这里的解释执行是相对于编
- 这是用来快速学习 Python Socket 套接字编程的指南和教程。Python 的 Socket 编程跟 C 语言很像。Python 官
- 1 开通云上的mysql经过询价,我发现阿里云的数据库是比较便宜的,新人购买非常划算。对于爱学习的博主来说,果断购买一个。按照操作指引购买后
- 目录LAMP架构1.lamp介绍2.web服务工作流程web服务器的资源分为俩种:静态和动态资源web服务器如何处理客户端的请求2.1cgi
- 一、jpype模块是什么?能够让 python 代码方便地调用 Java 代码的工具二、jpype模块安装安装和其它模块没区别,但是注意模块
- 前言:在数据库开发过程中我们经常会使用分页,核心技术是使用用limit start, count分页语句进行数据的读取。 一、My
- python使用matplotlib的savefig保存时图片保存不完整的问题使用如下形式的代码进行图片保存时,保存的图片出现不完整的情况,
- 我有个需求就是抓取一些简单的书籍信息存储到mysql数据库,例如,封面图片,书名,类型,作者,简历,出版社,语种。我比较之后,决定在亚马逊来
- 创建触发器创建只有一个执行语句的触发器CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件ON 表名 FOR EACH
- df.dropna()函数用于删除dataframe数据中的缺失数据,即 删除NaN数据.官方函数说明:DataFrame.dropna(a
- 一、为图片添加水印 代码如下:<% Dim Jpeg ””//声明变量 Set Jpeg = Server.CreateObject(