2017-09-14 120 views
1

我是ColdFusion的新手,我創建了一個result.cfm頁面,現在我只想在用戶調用/result.cfm時在Application.cfc中執行一些操作。類似下面:如何在ColdFusion中處理請求

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

有什麼辦法來處理這個請求?

+2

爲什麼要在'Application.cfc'中執行某些操作?爲特定頁面?只需將該邏輯添加到頁面本身 - 「result.cfm」。以下是ColdFusion中[請求生命週期事件](http://www.learncfinaweek.com/week1/Application_cfc/)中的一些文檔。 –

回答

0
<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> 
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