Есть ли в ColdFusion короткий синтаксис для создания структуры? - PullRequest
11 голосов
/ 19 августа 2009

Есть ли какой-нибудь "короткий" синтаксис для создания структуры в ColdFusion? Я хотел бы заменить этот подробный код:

<cfscript>
  ref = StructNew();
  ref.Template = "Label";
  ref.Language = "en";
  stcML = GetPrompts(ref);
</cfscript>

с чем-то более похожим на объект JavaScript:

<cfscript>
  stcML = GetPrompts({ Template: "Label", Language: "en" });
</cfscript>

Есть что-нибудь подобное?

Ответы [ 5 ]

17 голосов
/ 19 августа 2009

Coldfusion 8 (и выше) имеет буквенное обозначение struct:

<cfset objData = {
  Key1 = "Value1",
  Key2 = "Value2"
} />

Тем не менее, есть несколько строк:

Примечание: ColdFusion 9 исправил ошибки, описанные выше, поэтому с любой версией CF, доступной в настоящее время, у вас все будет хорошо. Я все еще оставляю в ссылках для справки.

6 голосов
/ 28 августа 2009

Если ваши попытки упростить структурный синтаксис в CF8 наталкиваются на вложенность и / или внутренние недостатки, вы можете использовать эту обманчиво простую функцию:

<cfscript>
    function nStruct(){
        return arguments;
    }
</cfscript>

Затем вы можете использовать этот синтаксис:

<cfdump var="#nStruct(
    a=1,
    b=nStruct(
        c=2,d=3
    )
)#" />
3 голосов
/ 21 августа 2009

В Railo 3 и выше вы создаете так:

  • Структура: структура (a: 1, b: 2, c: 3, d: "aaa")
  • Массив: массив (1,2,3, "aaa")
  • Запрос: запрос (col1: массив (1.1,1.2,1,3), col2: массив (2.1,2.2,2,3))
2 голосов
/ 19 августа 2009

В ColdFusion 8 и выше вы можете создать такую ​​структуру:

ref={template="label", language="en"}
1 голос
/ 24 августа 2009

Вы можете использовать cfjson . Добавьте компонент в используемую область (например, область запроса):

<cfobject name="request.json" component="cfc.json">

и назовите это как:

<cfset aStructure = request.json.decode('{ Template: "Label", Language: "en" }')>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...