| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 879 人关注过本帖
标题:[原创]asp 的 Template 技术,使得程序与界面设计分离
只看楼主 加入收藏
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
 问题点数:0 回复次数:5 
[原创]asp 的 Template 技术,使得程序与界面设计分离

<%
'######## Class Template ##########
'BY RAINIC
'Author: James Chan
'Date: feb 13 2006
'说明:asp 的 Template 技术(我在php的Template技术中找到灵感)
' 使用这种技术,可以使程序与界面设计分离
' 还可以生成网页文件(静态html、动态都可以)
'##################################
'使用方法
'例如:test.asp的代码如下
' Set html=New Template
' call html.readfile("test.html")
' call html.fill_var("title","ASP Template") '替换模板文件中的“变量”(“{}”中的为变量)
' call html.fill_var("content","这是 asp 的 Template 技术。<br>")
' call html.print() '显示模板代码
' 'call html.Createfile("/",".html")   '创建文件,生成的文件夹和文件将放在"/"中,文件扩展名为".html"
'
' 以下是模板test.html的代码
' <body>
' <h3>{title}</h3>
' <hr>
' {content}
' </body>
'
' 运行test.asp看结果怎样

Class Template

Private temp_content
Private fso

Private Sub Class_Initialize
temp_content=""
Set fso=Server.CreateObject("Scripting.FileSystemObject")
End Sub

'生成文件,这里temp_path为相对目录,生成的文件夹和文件将放在temp_path中,filetype为文件的扩展名
Public Sub Createfile(temp_path,filetype)
folder_Rpath = CreateFolder(temp_path)
file_Rpath = folder_Rpath & "/" & CreateName(filetype)
Set myfile=fso.CreateTextFile(file_Rpath)
myfile.Write(temp_content)
myfile.Close
set myfile=nothing
End Sub

Private Function CreateFolder(temp_path) '以当天日期生成文件夹! 并返回文件夹的绝对路径
FolderName = FormatDateTime(date(),vbShortDate)
folder_Rpath = server.MapPath(temp_path&FolderName)
if not fso.FolderExists(folder_Rpath) then
fso.CreateFolder(folder_Rpath)
end if
CreateFolder = folder_Rpath
End Function

Private Function CreateName(filetype) '生成文件名
CreateName = CStr(DateDiff("s",date(),now())) & filetype
End Function

Public Sub fill_var(filled_var,fill_content)
temp_content = replace(temp_content,"{"&filled_var&"}",fill_content)
End Sub

Public Sub print()
response.Write(temp_content)
End Sub

Public Sub readfile(Template_path) '从模板文件读出html代码
Set MyTextFile=fso.OpenTextFile(Server.MapPath(Template_path))
temp_content=MyTextFile.ReadAll
MyTextFile.Close
set MyTextFile=nothing
End Sub

End Class
%>

[此贴子已经被作者于2006-2-13 14:36:33编辑过]

搜索更多相关主题的帖子: Template 界面 asp 技术 
2006-02-13 13:06
cime63
Rank: 1
等 级:新手上路
帖 子:167
专家分:0
注 册:2004-8-9
收藏
得分:0 
如果确实是原创,鼓励一下
不过,比较成熟的asp模板类已经不算少了
以前用ASP时,我是使用国外一个人开发的一个模板类,已经一年没用ASP了,不知道他的那个类更新到哪个版本了

2006-02-13 16:46
阳光白雪
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:39
帖 子:2220
专家分:0
注 册:2005-11-18
收藏
得分:0 

用的还是FSO,可以很灵活的利用模板来改变页面的风格,不过就是这种模板的格式比较单调点,适用与内容叫单一的页面,如文章内容页面~~~,


专注于WEB前端交互平台开发:[url=http://blog./]blog.[/url](富客户端技术(RIA)交流平台)
2006-02-13 16:53
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 

是我原创的,
楼上的说单调,我没觉得,复杂的页面也一样可以用
不用fso还可以用什么?
你有别的办法吗?你开发出来啦?

没人欣赏,自己用


2006-02-13 18:12
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
以下是引用rainic在2006-2-13 18:12:00的发言:

是我原创的,
楼上的说单调,我没觉得,复杂的页面也一样可以用
不用fso还可以用什么?
你有别的办法吗?你开发出来啦?

没人欣赏,自己用

不用FSO应该可以用ADODB.Stream对像吧?我记得一些无组件上传类就是不需要FSO的,这个我目前就不知道怎么改扩展名存储。

2006-02-13 21:41
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
哦,不过用ADODB.Stream上传文件的时候很奇怪的,如果被上传文件在桌面上,就会上传失败,之前有个网友说的,我也试了,情况和他说的一样

2006-02-13 21:48
快速回复:[原创]asp 的 Template 技术,使得程序与界面设计分离
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027405 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved