繁体   English   中英

如何在ColdFusion中处理请求

[英]How to handle a request in ColdFusion

我是ColdFusion的新手,我创建了result.cfm页面,现在我只想在用户调用/result.cfm时在Application.cfc执行一些操作。 如下所示:

 <cfif 'if the request is for result.cfm'> <!-- do some action --> </cfif> 

有什么办法可以处理请求?

<cfif REFindNoCase("^/result.cfm", CGI.SCRIPT_NAME)>
  <!--- do some action --->
</cfif>

或者,如果您想匹配更多的pagessubfolders ,可以执行以下操作:

<cfset patterns = [
    "^/foo/",
    "^/bar/",
    "^/etc/",
    "^/login.cfm",
    "^/baz.cfm"
] />

<cfif REFindNoCase("(" & ArrayToList(patterns, ")|(") & ")", CGI.SCRIPT_NAME)>
    <!--- do some action --->
</cfif>

CFC是Coldfusion所谓的组件,但本质上是具有方法的对象。 当请求您网站上的任何页面时,coldfusion将页面名称发送到Application.cfc的onRequest方法。 默认情况下,该方法如下所示...

<cffunction name="OnRequest" access="public" returntype="void" output="true">

    <cfargument name="TargetPage" type="string" required="true" />

    <cfinclude template = "#arguments.targetPage#" />

</cffunction>

TargetPage是已请求页面的相对路径。

我不确定您要做什么,但是您可以只创建页面result.cfm并在其中进行编码,或者如果需要,可以通过创建自己的onRequest方法并将其放置来拦截调用它在您的application.cfc

<cffunction name="OnRequest" access="public" returntype="void" output="true">

    <cfargument name="TargetPage" type="string" required="true" />

    <cfif arguments.targetPage is "requestresult.cfm">
        <!--- Do something else --->
    <cfelse>
        <cfinclude template = "#arguments.targetPage#" />
    </cfif>

</cffunction>

请注意,onRequest不是Application.cfc中唯一的方法,因此值得一看。 还要注意,当您尝试仔细检查斜杠是否随请求一起出现时,您可能希望输出arguments.targetPage(不记得了)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM