如何从自定义多字段组件中获取值?

时间:2013-04-23 15:58:39

标签: cq5 jcr

我创建了一个多字段自定义窗口小部件,其中包含两个名称为./urlLink和./urlText的字段。 现在我尝试使用以下代码

将widget中的值提取到组件的jsp中
String property = properties.get("./urlLink",String[].class);
for(String value: property ) {

  out.print(value);
}

out.print(property);

但是我无法获得它的价值,而是我得到了错误。

3 个答案:

答案 0 :(得分:1)

如果您正在获取属性并且它包含字符串值,则需要使用方法getString() - 当您拥有该属性时,可以通过执行此类操作将字符串设置为值:

Property property = properties.get("./urlLink",String.class);
String value = property.getString();

请注意,如果您的返回应该是一个字符串数组,那么您输入值的类型应该是一个字符串数组。

String[] value

查看day.com上有关属性的文档并获取其中的值。

答案 1 :(得分:0)

看起来像是一个错字:访问时,您不会使用.\为属性名称添加前缀。

我的猜测是你有NullPointerException,对吗?那是因为值映射(./urlLink)中没有properties属性。无论如何你应该检查它(这样它就不会被扔在没有内容的新页面上)。

如果这没有帮助 - 请仔细检查您是否在内容中包含了属性(使用.xml.infinite.json扩展名调用您的网页,然后仔细检查您是否可以将其视为普通内容字符串(你应该能够 - CRX做一些神奇的,智能类型的转换)。

答案 2 :(得分:0)

将自定义xtype注册为:

// registering the custom widget with the name dualfield
    CQ.Ext.reg("dualfield", CQ.Ext.form.DualField);

然后你可以轻松地获取值:

String [] data = properties.get(“multi”,String [] .class);

这里multi是具有多字段为xtype

的窗口小部件的名称