如何将xtype值存储为String Array CQ5 / AEM

时间:2016-02-08 21:57:24

标签: extjs cq5 aem

我有一组xtypes定义的对话框。 xtype中的一个是"选择"使用类型"选择"。 现在每个选项都有一个值类型" String []" ,但是当我将组件添加到页面并查看选项内容时。

它存储为" String"而不是" String []"。

有人能告诉我如何制作/强制xtype将其值存储在" String []"而不是" String"。

4 个答案:

答案 0 :(得分:2)

您可以使用其中一个Sling参数通过SlingPostServlet操纵内容创建。阅读更多:here

实际上,只需在对话框中添加一个隐藏字段,该字段将传递具有预期属性类型的@TypeHint参数。如果您的xtype将数据保存到例如cities属性您可以添加以下内容:

<citiesTypeHint
    jcr:primaryType="cq:Widget"
    name="cities@TypeHint"
    value="String[]"
    xtype="hidden"

答案 1 :(得分:0)

在dialog.xml中添加xtype时,请将其添加为:

property=value

这将创建一个property String类型,其值为value

如果您希望数组将值放在[]中,则为:

property="[value1,value2,value3,...]"

这将创建property String[]类型,其值为value。如果你想添加更多,请与昏迷分开。

如果要定义dataType,请:

property="{dataType}value"

这将创建property dataType类型,其值为value。其中dataType可以是Boolean, Date, Long, etc

之类的任何数据类型

如果您使用crx / de添加Property,请点击右下角的add multi按钮。

希望这有助于...... :)

答案 2 :(得分:0)

MateuszChromiński变体几乎为我工作,除了value="String[]"导致emprty属性,所以我使用defaultValue="String[]"并且它工作得很完美。

<targetGroupsTypeHint
  jcr:primaryType="cq:Widget"
  name="./targetGroups@TypeHint"
  defaultValue="String[]"
  xtype="hidden"/>

答案 3 :(得分:-1)

在对话框中输入以下内容:

typeHint="String[]"