Coldfusion MVC模式探索

王朝html/css/js·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

Coldfusion MVC模式探索

Coldfusion MVC模式探索 我所谓的使用MVC模式其实是利用了cfmodule的嵌套调用特点.下面是MCV模式的图示:

我这里把应用页面文件当做view.然后按照栏目分类,每个栏目拥有自己的读取数据功能,那么这个就是model了,然后写一个.cfm文件作为调用文件(controller),按照不同的请求来调用不同栏目文件中的不同数据.

下面我给个简单的实例.因为我没有特地去做一个实例,所以只是程序上取下来的几段然后改了下.

view页

以下是代码片段:

<CFMODULE module='doc' template='action/cfmodule.cfm'>

<cfdump var='#Request.alldoc#'>

Request.alldoc是在model中已经定义好的一个数据集.

Controller页 :

以下是代码片段:

<cfparam name='Attributes.param1' type='string' default=''>

<cfparam name='Attributes.param2' type='string' default=''><!--- 来自路径 --->

<cfswitch expression='#Attributes.module#'>

<cfcase value='doc'><!--- 查看所有 Doc --->

<CFMODULE param1='viewall' template='CM_model.cfm'>

</cfcase>

<cfcase value='doc_add'><!--- 添加一个 Doc --->

<!--- 定义来自表单的数据 --->

<cfset REQUEST.add_id = #form.f_1#>

<cfset REQUEST.add_title = #form.f_2#>

<CFMODULE param1='addone' param2='form.xxx' param3='xxx' param4='xxx.cfm' template='CM_model.cfm'>

</cfcase>

</cfswitch>

doc和doc_add是两个判断常量.

model页:

以下是代码片段:

<cfparam name='Attributes.param1' type='string' default=''>

<cfparam name='Attributes.param2' type='string' default=''>

<cfparam name='Attributes.param3' type='string' default=''>

<cfparam name='Attributes.param4' type='string' default=''>

<cfswitch expression='#Attributes.command#'>

<!--- 处理Document --->

<cfcase value='viewall'><!--- 查看所有 Document ,返回collection --->

<cfquery name='getDoc' datasource='#Request.xxx#' username='#Request.xxx#' password='#Request.xxx#'>

SELECT * FROM xxxx **************省略**************

</cfquery>

<cfset Request.alldoc=getDoc>

</cfcase>

<cfcase value='addone'>

<cfquery name='getDoc' datasource='#Request.xxx#' username='#Request.xxx#' password='#Request.xxx#'>

INSERT INTO xxx

SET xxx = ’#REQUEST.xxx#’

*****************省略******************

</cfquery>

</cfcase>

</cfswitch>

如代码所见,我在几个模块中都使用request传递.request在Coldfusion中的功能类似一个对象,其作用域为当前页面(seesion是当前浏览器),感觉简直是为这个应用量身定做的.由于使用的是cfmodule,所以在application.cfm中定义的值我也都用上了request.这个模式的应用会造成一定速度的缓慢,但是优点是显而易见的,至少我可以做到没有一个生成页可以看到我的controller所在的位置,而model则藏得更好,不过其他的相关安全措施该防备的还是要防备的.呵呵.这是我在最近的网站开发过程中做得写尝试,并且已经成功运用.当然我这里的MVC分类还是不太标准的.希望对你有点启发吧

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航