В чем разница между переменной, определенной тегом cfproperty, и переменной области видимости переменных в coldfusion? - PullRequest
5 голосов
/ 09 июля 2009

В чем разница между определенной переменной тега cfproperty и переменной области видимости переменных в ColdFusion?

У меня есть опыт работы с языком Java, можете ли вы сравнить переменную cfproperty ColdFusion, переменную области видимости переменных с переменной экземпляра Java и переменной класса?

большое спасибо!

Ответы [ 3 ]

12 голосов
/ 09 июля 2009

CFPROPERTY полезна только для предоставления метаданных для компонента. Единственный раз, когда я их использую, это когда создается компонент для веб-службы, когда они требуются.

Вот Техническая заметка, которая обсуждает CFPROPERTY немного дальше: http://kb2.adobe.com/cps/191/tn_19169.html

Область действия переменных «защищена» и доступна только внутри компонента. Переменные области видимости this являются открытыми свойствами. И, конечно же, любая переменная, объявленная с ключевым словом "var", является закрытой для этого метода.

Вот еще несколько областей применения компонентов: http://www.hemtalreja.com/?p=94

6 голосов
/ 09 июля 2009

Примечание: тег cfproperty делает НЕ определенных переменных.

Однако, это полезно, когда вы используете CFC Explorer (перейдите непосредственно к CFC), чтобы вы могли видеть свойства объекта CFC.

К вашему сведению ... cfproperty будет намного полезнее в CF9. См .: ORM - переосмысление интеграции баз данных ColdFusion

0 голосов
/ 13 июля 2009

cfproperty полезен при использовании пользовательских объектов в удаленных методах. Например, предположим, что у меня был следующий компонент:

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

Который я хотел использовать в качестве возврата к удаленному методу, используемому через SOAP. Мне нужно было бы <cfproperty> теги для каждой переменной, которую я хотел инкапсулировать в возвращаемый объект, чтобы этот объект был включен в документ WSDL как сложный тип. Следовательно, компонент сверху должен быть:

<cfcomponent displayname="User">
    <cfproperty name="firstName" type="string" />
    <cfset variables.firstName = "first" />
</cfcomponent>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...