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分类还是不太标准的.希望对你有点启发吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值