[英]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>
或者,如果您想匹配更多的pages
和subfolders
,可以执行以下操作:
<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.