我是ColdFusion的新手,我創建了一個result.cfm
頁面,現在我只想在用戶調用/result.cfm
時在Application.cfc
中執行一些操作。類似下面:如何在ColdFusion中處理請求
<cfif 'if the request is for result.cfm'>
<!-- do some action -->
</cfif>
有什麼辦法來處理這個請求?
我是ColdFusion的新手,我創建了一個result.cfm
頁面,現在我只想在用戶調用/result.cfm
時在Application.cfc
中執行一些操作。類似下面:如何在ColdFusion中處理請求
<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
爲什麼要在'Application.cfc'中執行某些操作?爲特定頁面?只需將該邏輯添加到頁面本身 - 「result.cfm」。以下是ColdFusion中[請求生命週期事件](http://www.learncfinaweek.com/week1/Application_cfc/)中的一些文檔。 –