我想處理用戶在該模板不存在時點擊/somePage.cfm的url並使用其他目錄中的模板的情況。我知道我可以通過重寫apache等來做到這一點,但我真的不想在那裏存儲邏輯,所以我試圖在我的Application.cfc中覆蓋onTemplateMissing
行爲。在Application.cfc中覆蓋onMissingTemplate處理
它似乎在我的測試中工作正常,但我擔心做這個hacky解決方案我很短的切割一些我還沒有看到的部分(例如,我目前沒有使用的方法,如onSessionStart等等),並可能在未來遇到問題。
這是目前我在做什麼:
<cffunction name="onMissingTemplate">
<cfargument name="targetPage" />
<!--- Handle any templates that we're really loading from elsewhere --->
<cfif isFooTemplate(arguments.targetPage)>
<cfset onRequestStart(arguments.targetPage) />
<cfset onRequest(arguments.targetPage) />
<cfset onRequestEnd(arguments.targetPage) />
<cfreturn true />
</cfif>
<cfreturn false />
</cffunction>
注意,同樣在我onRequest
方法我在做進一步處理爲isFooTemplate()
將返回真實的模板。