<!--#include file="EasyIDE.asp"-->
<%
'*****************************************************
' ASPMVC开发框架
' mengdejun
' 20101218
' 该类需EasyIDE类库(include,ob_get_contents)支持
'*****************************************************
CONST MODULE_PARAM="m" '//模块查询参数
CONST CONTROLLER_PARAM="c" '//控制器查询参数
CONST ACTION_PARAM="a" '//操作查询参数
CONST MODULE_LIMITER="_" '//嵌套模块分隔符
CONST CONTROLLER_EXTENSION=".asp" '//控制器拓展名
Dim M '//模块
Dim C '//控制器
Dim A '//操作
Dim T '//目标控制器文件
Dim Is_App '//是否为控制器支持类
Class App
Private DM '//默认模块
Private DC '//默认控制器
Private DA '//默认操作
Public Sub Class_Initialize()
DM=""
DC=""
DA=""
Is_App=True
End Sub
Public Sub Class_Terminate()
End Sub
'//执行派发方法
Public Sub Dispatch()
M=IfReturn(IsEmpty(request(MODULE_PARAM)),DM,request(MODULE_PARAM))
C=IfReturn(IsEmpty(request(CONTROLLER_PARAM)),DC,request(CONTROLLER_PARAM))
A=IfReturn(IsEmpty(request(ACTION_PARAM)),DA,request(ACTION_PARAM))
Call Parse
Call Run
End Sub
'//执行重定向
Public Sub Redirect(ByVal Param1,ByVal Param2,ByVal Param3)
M=Param1
C=Param2
A=Param3
Call Parse
Call Run
End Sub
'//赋值
Public Sub Assign(ByRef Vara,ByVal Varb)
If IsObject(Varb) Then
Set Vara=Varb
Else
Vara=Varb
End If
End Sub
'//执行动作
Private Sub Run()
include(T)
End Sub
'//解析目标,支持嵌套模块,例:?m=module_module_a&c=a&a=show
Private Sub Parse()
If Not IsEmpty(M) Then
Dim ATem,MTem,MArray
MArray=Split(M,MODULE_LIMITER,-1,1)
For Each ATem In MArray
MTem=MTem&"/"&ATem
Next
M=Mtem
Else
M=""
End If
IF IsEmpty(C) Then Exit Sub
T="."&M&"/"&C&CONTROLLER_EXTENSION
End Sub
'//默认模块
Public Property Let DefM(ByVal MM)
DM=MM
End Property
'//默认控制器
Public Property Let DefC(ByVal CC)
DC=CC
End Property
'//默认操作
Public Property Let DefA(ByVal AA)
DA=AA
End Property
End Class
'//三元操作符
Function IfReturn(ByVal Expre,ByVal VarA,ByVal VarB)
If Expre Then
If IsObject(VarA) Then
Set IfReturn=VarA
Else
IfReturn=VarA
End If
Else
If IsObject(VarB) Then
Set IfReturn=VarB
Else
IfReturn=VarB
End If
End If
End Function
'//控制中可调用此函数已避免二次重复输出
Function Template(ByVal f)
Template=ob_get_contents(f)
End Function
'//框架实例化
Dim web:Set web=new App
%>