cfsetting 的 ColdFusion 9 脚本语法是啥?
Posted
技术标签:
【中文标题】cfsetting 的 ColdFusion 9 脚本语法是啥?【英文标题】:What's the ColdFusion 9 script syntax for cfsetting?cfsetting 的 ColdFusion 9 脚本语法是什么? 【发布时间】:2011-12-24 17:32:22 【问题描述】:我正在尝试将 Application.cfc
转换为脚本。原来是这样的:
<cfcomponent displayname="Application" output="false">
<cfset this.name = "testing">
<cfset this.applicationTimeout = createTimeSpan(0,1,0,0)>
<cfset this.sessionManagement = true>
<cfset this.sessionTimeout = createTimeSpan(0,0,30,0)>
<cfsetting requesttimeout="20">
...
我不知道如何将cfsetting
标记转换为脚本。以下尝试无效:
setting requesttimeout="20"; // throws a "function keyword is missing in FUNCTION declaration." error.
setting( requesttimeout="20" ); // throws a "Variable SETTING is undefined." error.
看起来 Railo 可能支持它 (link),但我在 ColdFusion's documents 中找不到 cfsetting
标记的等效项
【问题讨论】:
在 CF9 中对你没有帮助,但是 CF10 在脚本中添加了原生 cfsetting。 【参考方案1】:没有。通常我会建议为此提交ER,但已经有。我建议将其放入 CFM 文件并使用 include 将其引入。
【讨论】:
对错误报告进行投票是否有帮助,或者它是否已被接受并会在下一个版本中修复? 该错误已作为“已修复”关闭。 CF10 似乎有一个setting
等效标签。【参考方案2】:
试试这个
<cfscript>
createObject( "java", "coldfusion.tagext.lang.SettingTag" ).setRequestTimeout( javaCast( "double", 20 ) );
</cfscript>
或者这个
<cfscript>
createObject( "java", "coldfusion.runtime.RequestMonitor" ).overrideRequestTimeout( javaCast( "long", 20 ) );
</cfscript>
其中 20 是您的 cfsetting requesttimeout 值
【讨论】:
【参考方案3】:在 CF11(我认为是 CF10)中,根据 docs 你可以这样做:
setting enablecfoutputonly="true" requesttimeout="180" showdebugoutput="no";
【讨论】:
问题是关于 CF9,但由于无论版本如何,这都是 Google 的***结果,我认为在此处包含并包含实际代码示例会很有用。【参考方案4】:这些 cfml 脚本:
<cfsetting enablecfoutputonly="true" />
<cfsetting requesttimeout="60" />
<cfsetting showdebugoutput="false" />
应该在 cfscript 中这样工作:
createObject( "java", "coldfusion.tagext.lang.SettingTag" ).setEnablecfoutputonly(true);
createObject( "java", "coldfusion.tagext.lang.SettingTag" ).setRequestTimeout(javaCast( "double", 60 ));
createObject( "java", "coldfusion.tagext.lang.SettingTag" ).setShowdebugoutput(false);
【讨论】:
由于没有记录,我不建议在生产代码中使用它。 糟糕的文档并不是不使用软件内置功能的借口。唯一的区别是您只负责确保它们在未来的版本中仍然存在。无论如何,有很多记录在案的功能在较新的版本中被破坏了。因此,长话短说,确保您使用测试框架并信任您的测试,而不是不完整/不准确的文档。 【参考方案5】:setting.requesttimeout="3000";
这应该可行
【讨论】:
以上是关于cfsetting 的 ColdFusion 9 脚本语法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
cfcomponent 中的 cfquery 未在 Coldfusion 9 中返回最新结果