我是ColdFusion的新手,我创建了一个result.cfm
页面,现在我只想在用户调用Application.cfc
时在/result.cfm
中执行一些操作。如下所示:
<cfif 'if the request is for result.cfm'>
<!-- do some action -->
</cfif>
有没有办法处理请求?
答案 0 :(得分:0)
<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>
答案 1 :(得分:0)
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,以便仔细检查斜杠是否附带请求(无法记住)