问题标签 [cfc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
1706 浏览

coldfusion - ColdFusion:在 CFC 中省略 variables 关键字是否安全?

在 ColdFusion 组件 (CFC) 中,是否有必要为变量范围的变量使用完全限定名称?

如果我改变这个,我会不会惹上麻烦:

到这个?

0 投票
4 回答
3979 浏览

coldfusion - 如何在不使用 Evaluate() 的情况下动态调用作为实例化 cfc 一部分的函数?

例如,我希望能够以编程方式命中如下代码行,其中函数名称是动态分配的,而不使用 Evaluate()。下面的代码当然不起作用,但代表了我想做的事情。

我能找到动态调用函数的唯一方法是使用 cfinvoke,但据我所知,它会即时实例化相关的 cfc/函数,并且不能使用先前实例化的 cfc。

谢谢

0 投票
4 回答
3177 浏览

oop - ColdFusion 对象是按引用传递还是按值传递?

ColdFusion 对象(即通过cfobject 调用的CFC)通常是通过引用传递还是通过值传递(复制到内存中)?是否可以强制 ColdFusion 以任何一种方式传递对象?

0 投票
4 回答
10809 浏览

coldfusion - 使用相对路径扩展 CFC

我想在不同的目录中扩展 CFC,我有几个选项,但不知道如何做到这一点:

A)使用动态映射(这必须是基于站点的动态映射,例如,对于实时站点,它将是 cfc.myPackage.MyCFC,但在开发站点上它将是 myCfcRoot.myPackage.MyCFC) - 我已经尝试过将表达式放入扩展位,但显然 CF 不喜欢这样,例如:

或者

B) 提供 CFC 的相对路径(以某种方式)以进行扩展。

我担心我做不到,但我希望我错过了一些东西。

0 投票
4 回答
6816 浏览

coldfusion - 在子目录中扩展 application.cfc

我有以下两个文件,并希望第二个文件扩展第一个文件:

  1. wwwroot\site\application.cfc
  2. wwwroot\site\dir\application.cfc

但是,当我去为第二个文件声明组件时,我不确定在扩展属性中放置什么。 我的问题是几个开发站点(具有共享的 SVN 存储库)在同一个 ColdFusion 实例上运行,所以我不能像这样在 CF 管理员中创建一个映射:

但是,ColdFusion 不喜欢:

或任何动态输入,例如:

创建运行时映射(如这里)似乎也不可能。在基础 application.cfc 中创建它是没有用的,因为在声明继承 cfc 时该代码尚未执行;而且我无法在定义继承组件之前创建映射,因为还没有应用程序可以附加它。

有什么方法可以引用父目录来完成我的扩展?

编辑澄清:由于上面的粗体文本,ApplicationProxy 解决方案不起作用。现在,作为一种解决方法,我们只是不将 \dir\application.cfc 检入 SVN,以便每个开发人员都可以保留扩展他/她自己的根 application.cfc 的版本。显然,这并不理想。

0 投票
3 回答
1574 浏览

coldfusion - 如何获取在 ColdFusion 中扩展我的组件的名称?

假设我有以下名为Base的组件:

我想在另一个名为Admin的组件中扩展 base :

现在在我的应用程序中,如果我在创建对象时执行以下操作:

我得到的元数据告诉我该组件的名称是Admin并且它正在扩展我的Base组件。这一切都很好,但我不想在创建对象时显式调用init()方法。

如果我能在我的Base组件中做这样的事情,我会很好:

然而,getmeta() 方法返回的元数据告诉我组件名称是Base,即使它仍在扩展中。关于如何做到这一点的任何想法?

0 投票
2 回答
3766 浏览

forms - Flex:如何访问我的 flex 表单中的数据并将其提交给 ColdFusion cfc?

我想将弹性表单的值提交给 ColdFusion cfc。

如果我有一个弹性表单(见下文),表单中的数据是一个对象吗?还是我必须根据表单中的 id 创建一个对象,然后将该新对象传递给 Coldfusion 组件?

0 投票
3 回答
1464 浏览

sql-server-2005 - ColdFusion 异常帮助:coldfusion.runtime.NoOperaScope 无法转换为 Coldfusion.runtime.ApplicationScope

我遇到了由以下代码段的 CFINVOKEARGUMENT 行引起的异常原因:

异常的确切文本是:

将 Coldfusion.runtime.NoOperScope 类型的对象强制转换为不兼容的类型时出错。这通常表示 Java 中的编程错误,尽管它也可能意味着您尝试以与设计不同的方式使用外来对象。Coldfusion.runtime.NoOperScope 不能转换为 coldfusion.runtime.ApplicationScope

笔记:

  • cfmx.Messages 是在 CFPROCRESULT 中返回的对象,通过 CFDUMP 检查它确实包含预期的数据
  • com_VUI_RemoveIllegalChars 根本没有改变
  • TTSText 是结果集中的有效列
  • 我怀疑这可能是 ColdFusion 配置问题

提前感谢任何可以阐明可能导致此问题的原因的人。

编辑:从异常日志中完成转储:

"Error","jrpp-11","01/06/09","15:11:37",,"coldfusion.runtime.NoOperScope 不能强制转换为coldfusion.runtime.ApplicationScope 包含或处理的文件的具体顺序是:C:\Inetpub\wwwroot\ermsvui\proc_playsitestatus.cfm,行:30" java.lang.ClassCastException:coldfusion.runtime.NoOperScope 不能在 Coldfusion.runtime.RuntimeServiceImpl.getFullTagName(RuntimeServiceImpl. java:625) 在coldfusion.runtime.TemplateProxyFactory.getFullName(TemplateProxyFactory.java:1082) 在coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:184) 在coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:157) 在Coldfusion.runtime.TemplateProxyFactory。在 Coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:358) 在 cfproc_playsitestatus2ecfm1824676963.runPage(C:\Inetpub\ wwwroot\ermsvui\proc_playsitestatus.cfm:30) 在coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192) 在coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366) 在coldfusion.filter.CfincludeFilter.invoke (CfincludeFilter.java:65) 在coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:279) 在coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) 在coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java: 40) 在coldfusion.filter.PathFilter.invoke(PathFilter.java:86) 在coldfusion。filter.LicenseFilter.invoke(LicenseFilter.java:27) 在coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) 在coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) 在coldfusion.filter.BrowserFilter.invoke (BrowserFilter.java:38) 在coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) 在coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) 在coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java: 22) 在coldfusion.CfmServlet.service(CfmServlet.java:175) 在coldfusion.monitor 在jrun.servlet.FilterChain.doFilter(FilterChain.java:86) 在coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)。在coldfusion.bootstrap 的event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)。BootstrapFilter.doFilter(BootstrapFilter.java:46) 在 jrun.servlet.FilterChain.doFilter(FilterChain.java:94) 在 jrun.servlet.FilterChain.service(FilterChain.java:101) 在 jrun.servlet.ServletInvoker.invoke(ServletInvoker .java:106) 在 jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) 在 jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:284) 在 jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)在 jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) 在 jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) 在 jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) ) 在 jrunx 的 jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)。scheduler.WorkerThread.run(WorkerThread.java:66)

上面的代码片段包含 proc_playsitestatus.cfm 的第 28 - 32 行

编辑:

TTS 文本的值在这种情况下是“测试的消息是”

com_VUI_RemoveIllegalChars 的来源:

0 投票
2 回答
172 浏览

apache-flex - 使用 CF8 重新编译后 remoteObject 失败

我收到了一个最初使用 Flex3 和 CF7 构建和编译的 Flex 项目。我的设置是带有 CF8 的 Flex3。当我最初将项目拉过来时一切正常,但是一旦我重新编译,对 CFC 的远程调用就开始失败。我使用了 Charles Web Proxy 调试器,发现故障似乎是从 flex2gateway 开始的。我再次检查以确保 flex2gateway 是可访问的,并且它在我的项目根目录和本地主机上的 CF8 安装上运行良好。我还仔细检查以确保我的项目设置指示 Flex 编译器为 services-config.xml 引用我的 CF8 wwwroot。据我所知,我所有的设置都是正确的。所以,不用说,我完全不知所措。以前有没有其他人遇到过这个问题?

谢谢,--安妮

0 投票
6 回答
277 浏览

coldfusion - 将 ColdFusion 5 基于标签的代码重构为 CFC

我觉得有必要将基于 CF5 的旧代码重构为 CFC。我们已经在 ColdSpring 和 Transfer 中有一些代码,但感觉对 ColdSpring 和 Transfer 进行大量重写是没有意义的。

我会遇到什么技巧、方法和陷阱。

我怎样才能让这变得容易?

我不介意将 ColdSpring 加入其中,但 Transfer 是我对项目规模感到害怕的一点。

编辑:我的代码库已经使用了 7-8 年并且非常庞大。描述它会很困难,但是我正在寻找关于方法的通用建议