快速入门
文件目录
Demo/ 实例目录
Apps/ 应用目录
HelloWorld/ "HelloWorld"应用
Controllers/ 控制器目录
IndexController.asp "Index"控制器
Views/ 视图目录
Index/ "Index"控制器视图目录
index.asp "index"视图
Layouts/ 布局目录
layout.asp "layout"布局
Configs/ 配置文件目录
config.xml 框架配置文件
index.asp 入口文件
Framework/ 核心框架目录
Controller/ 控制器模块
DB/ 数据库模块
Debugging/ 调试模块
Error/ 错误异常模块
File/ 文件模块
I18N/ 国际化模块
Request/ 请求模块
Router/ 路由器模块
String/ 字符串处理模块
View/ 视图渲染模块
SimpleExtensions.asp SE框架类
SimpleExtensionsBase.asp SE框架基类
入口文件
Demo/index.asp
站点入口文件。导入 SimpleExtensions 类文件,然后调用 run() 函数启动框架。
( run() 函数需要传入配置文件路径以配置启动框架。本框架只支持 UTF-8 文件格式。 )
<%@
Language = "VBScript"
CodePage = "65001"
%>
<% Option Explicit %>
<%
Session.CodePage = 65001
Response.Charset = "UTF-8"
Response.CacheControl = "no-cache"
Call Response.AddHeader("Pragma", "no-cache")
Response.Expires = -1
%>
<!-- #include file = "../Framework/SimpleExtensions.asp" -->
<% SE.run("Configs/config.xml") %>
配置文件
Demo/Comfigs/config.xml
配置文件为XML文件,配置项都包含在 SEConfigs 标签内。
SEConfigs 标签为系统模块,seDir(框架目录) 、 appsDir(应用目录) 为必须配置项。
Router 标签为路由器模块,appName(应用) 、 controllerName(控制器) 、 actionName(动作) 为必须设置的默认值。
<?xml version="1.0" encoding="UTF-8"?>
<SEConfigs>
<System>
<development>True</development>
<seDir>../Framework</seDir>
<appsDir>Apps</appsDir>
</System>
<Router>
<appName>HelloWorld</appName>
<controllerName>Index</controllerName>
<actionName>index</actionName>
</Router>
<I18N>
<language>zh-cn</language>
</I18N>
<DB>
<type>access</type>
<source>../Test/ProjectTest/Data/DataBase/# Data.asp</source>
</DB>
<Error>
<redirectURL>./</redirectURL>
</Error>
</SEConfigs>
控制器
Demo/Apps/HelloWorld/Controllers/IndexController.asp
控制器类以大驼峰方式命名,命名规则为 控制器名 + Controller 后缀。
控制器文件名与类名保持一致。
下面的控制器调用 Render(视图渲染) 模块,调用了 layout 布局 和 index 视图,同时传入 parameters 参数。
(Render(视图渲染) 模块 rendering 方法 传入的 parameters 变量必须为 Dictionary 类型)
<%
'''
' 首页控制器
''
%>
<%
Class IndexController
Public Sub indexAction()
Dim parameters
Set parameters = Server.CreateObject("Scripting.Dictionary")
Call parameters.Add("title", "SE")
Call parameters.Add("helloWorldText", "Hello, World!")
Call SE.module("View").render( _
"index", _
"layout", _
parameters _
)
End Sub
End Class
%>
布局
Demo/Apps/HelloWorld/Views/Layouts/layout.asp
布局文件中使用 <% '<!-- #content -->' %> 标签即可调用对应的视图内容。
<% '<!-- #contentStartToDo -->' %> 标签将调用视图中 <% '<!-- #contentStart -->' %> 标签之前的内容。
<% '<!-- #contentEndToDo -->' %> 标签将调用视图中 <% '<!-- #contentEnd -->' %> 标签之后的内容。
<% Response.Buffer = True %>
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="http://cdn.bootcss.com/twitter-bootstrap/3.0.3/css/bootstrap.min.css" />
<% '<!-- #contentStartToDo -->' %>
</head>
<% Response.Flush() %>
<body>
<!-- 导航条 -->
<nav class="navbar navbar-inverse" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="./">SE For ASP</a>
</div>
<div class="collapse navbar-collapse">
</div>
</div>
</nav>
<!-- /导航条 -->
<% '<!-- #content -->' %>
<% Response.Flush() %>
<!-- Js -->
<script src="http://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/twitter-bootstrap/3.0.3/js/bootstrap.min.js"></script>
<% '<!-- #contentEndToDo -->' %>
<!-- /Js -->
</body>
</html>
视图
Demo/Apps/HelloWorld/Views/Index/index.asp
content 为控制器中传入的变量。
<style>
/* 样式 */
</style>
<% '<!-- #contentStart -->' %>
<div class="jumbotron">
<div class="container">
<h1><%= helloWorldText %></h1>
<p>SE For ASP 是一个以Vbscript语言为基础的ASP VB开发框架。</p>
</div>
</div>
<% '<!-- #contentEnd -->' %>
<script>
// Js脚本
</script>
路由
http://localhost/?App=Site&C=Index&A=index
App 应用
C 控制器
A 动作