【问题标题】:Calling a component in ColdFusion 10在 ColdFusion 10 中调用组件
【发布时间】:2014-10-21 18:12:12
【问题描述】:

我有一个表单提交问题。我正在使用 ColdFusion 10,但我看不出我的代码有什么问题。 表单被提交到操作页面。在操作页面中我调用了一个组件:

 <cfif IsDefined("Form.Run")><!--- Form is submitted, call this comp --->

   <CFSET UpdObj = New cfcomponents.GComp.g_IsExist_1(Form.Sh, Form.LY)>
   <cfdump var="#UpdObj#><cfabort>

 </cfif 

我收到以下错误消息: 在第 117 行第 127 列发现无效的 CFML 构造。 我了解到这是在 CF10 中调用组件的正确方法。为什么我会收到此错误消息??? 第 117 行没有任何内容

【问题讨论】:

  • 那是准确的代码吗?你在这里缺少一个结束报价&lt;cfdump var="#UpdObj#&gt;,应该是&lt;cfdump var="#UpdObj#"&gt;。这里的右括号&lt;/cfif 应该是&lt;/cfif&gt;。您将需要使用这些行号中的引用代码发布实际错误。错误消息中的行号并不总是正确的。
  • 我正在删除我的答案...我意识到他的语法对于 CF 10 是正确的,他指定了那个版本。
  • 哪个文件有错误? “操作页面”还是组件本身?您完全有可能正确调用 CFC,但组件本身存在语法错误。

标签: coldfusion coldfusion-10


【解决方案1】:

您有语法错误。正如其他人所提到的,您可以使用createObject,但使用new 操作数可能更适合您的风格,因为它是您的代码示例中的内容:

<cfif structKeyExists(form, "run")><!--- Form is submitted, call this comp --->

   <cfset UpdObj = new cfcomponents.GComp() /> <!--- Calls init() if it exists --->
   <cfset exists = UpdObj.g_IsExist_1(Form.Sh, Form.LY) />
   <cfdump var="#UpdObj#" abort="true" />

 </cfif>

【讨论】:

  • 那是我的错字。在我的实际代码中,我有右引号和右括号。
  • 那么您的确切错误信息是什么?参考您上面的代码示例的第 117 行是什么?
  • 在您的示例中直接调用 CFC 上的方法时,您不能使用 new 操作数。你必须在调用方法之前调用构造函数:&lt;cfset UpdObj = new cfcomponents.GComp().g_IsExist_1(Form.Sh, Form.LY) /&gt; 或者你使用createObject,然后你可以这样做:&lt;cfset UpdObj = createObject("cfcomponents.GComp").g_IsExist_1(Form.Sh, Form.LY) /&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多