【问题标题】:what is the difference between cfproperty tag defined variable and the variables scope variable in coldfusion?cfproperty 标记定义变量和coldfusion 中的变量范围变量有什么区别?
【发布时间】:2010-11-09 07:27:43
【问题描述】:

cfproperty 标签定义变量和 ColdFusion 中的 variables 作用域变量有什么区别?

我有 Java 语言经验,你能将 ColdFusion cfproperty 变量、变量作用域变量与 Java 实例变量和类变量进行比较吗?

非常感谢!

【问题讨论】:

    标签: variables coldfusion cfc


    【解决方案1】:

    CFPROPERTY 仅用于为组件提供元数据。我唯一一次使用它们是在为 Web 服务创建组件时,当需要它们时。

    这是一个技术说明,它进一步讨论了 CFPROPERTY:http://kb2.adobe.com/cps/191/tn_19169.html

    变量范围是“受保护的”,并且仅在组件内可用。 “this”范围变量是公共属性。当然,使用“var”关键字声明的任何变量都是该方法的私有变量。

    这里有更多关于组件作用域的内容:http://www.hemtalreja.com/?p=94

    【讨论】:

    • 在 cf9 中,cfproperty 得到了很多关注,现在确实为组件设置了变量。如果你还添加了 accessors 指令,你也会得到默认的 getter 和 setter。
    【解决方案2】:

    注意:cfproperty 标签确实定义了变量。

    但是,当您使用 CFC Explorer(直接浏览到 CFC)时,它会很有帮助,这样您就可以看到 CFC 对象的属性。

    仅供参考...cfproperty 在 CF9 中将更加有用。见:ORM - Rethinking ColdFusion Database Integration

    【讨论】:

    • 您还可以使用属性元数据和 CF8 的 onMissingMethod 来定义可以在 bean 上设置哪些属性。
    【解决方案3】:

    cfproperty 在远程方法中使用自定义对象时很有用。例如,假设我有以下组件:

    <cfcomponent displayname="User">
        <cfset variables.firstName = "first" />
    </cfcomponent>
    

    我想将其用作对通过 SOAP 使用的远程方法的返回。我需要为要封装在返回对象中的每个变量添加&lt;cfproperty&gt; 标记,以便将该对象作为复杂类型包含在 WSDL 文档中。因此,上面的组件必须是:

    <cfcomponent displayname="User">
        <cfproperty name="firstName" type="string" />
        <cfset variables.firstName = "first" />
    </cfcomponent>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-25
      • 2019-07-25
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      相关资源
      最近更新 更多