如何在Application.cfm文件范围中重新初始化网站

时间:2013-08-31 11:29:48

标签: coldfusion application.cfm

也许标题似乎有些奇怪,但我的问题很简单,如何用Application.cfm重新初始化应用程序,我知道我们在Application.cfc中的表现如何

<cfscript>
if(structKeyExists(url, 'reinit')) {
    onApplicationStart();
}
</cfscript>

但是如何在Application.cfm中,不确定,请指导

由于

2 个答案:

答案 0 :(得分:2)

首先,运行onApplicationStart()不再重新启动应用程序而不是运行onClick()鼠标单击事件处理程序会导致鼠标按下按下。 onApplicationStart()被称为作为应用程序启动的结果,而不是相反。

其次,Application.cfm与应用程序生命周期无关,它只是一个包含在每个请求开头的CFML文件。它与onRequestStart()的关联性比onApplicationStart()更紧密:不幸的是,该文件名称错误。它的对应onRequestEnd.cfm证明了这一点。

我认为您的要求是重新初始化您的应用范围,是吗?您是否将所有应用程序范围设置隔离在特定的CFML文件中,例如:applicationSettings.cfm,然后在Application.cfm中包含这样的逻辑:

// Application.cfm
if (!structKeyExists(application, "inited")){
    include "applicationSettings.cfm";
}

(然后作为applicationSettings.cfm设置application.initedtrue的最后一件事。)

如果是这样,您只需修改条件以包含您的URL reinit变量,例如:

if (!structKeyExists(application, "inited") || structKeyExists(URL, "reinit")){
    include "applicationSettings.cfm";
}

答案 1 :(得分:0)

在OnRequestStart()中添加如下内容:

param name='url.reloadApp' default='no';

if(url.reloadApp == 'yes')
{
    applicationStop();
}