application.cfc和页面处理/传播

时间:2013-07-04 18:44:48

标签: coldfusion coldfusion-9 cfml application.cfc

使用OnRequestStart事件处理程序在请求的页面不存在时是否可以呈现不同的页面?

function onRequestStart( string targetPage ) {
    // handle another page
} 

if(FileExists(cgi.script_name)){
    include cgi.script_name;
}else{
    // render another page
}

如果我直接使用include而不是通过onRequestStart传递它,我会收到有关缺少SESSION的错误

如果我没有中止执行,我会收到File not found错误。有没有办法跳过尝试查找文件并使用onRequestStart事件来呈现不同的页面?

2 个答案:

答案 0 :(得分:4)

如果您试图阻止cfF模板不存在的coldFusion页面404(例如/index2.cfm),您可以在application.cfc中使用onMissingTemplate()

如果导致404的模板不是由CF处理的东西(即.htm,.html),那么你将不得不使用自定义404页面或可能的网址重写在网络服务器中捕获它

答案 1 :(得分:-1)

试试这个insted

OnError()
  

如果异常被抛出并且未被控制代码捕获,则会触发。

查看这篇文章 Ben Nadel on application.cfc