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

Aem 如何从自定义多字段组件获取值?,aem,jcr,Aem,Jcr,我创建了一个多字段自定义小部件,它有两个字段,分别是./urlink和./urlText。 现在,我正尝试使用以下代码将小部件中的值提取到组件的jsp中 String property = properties.get("./urlLink",String[].class); for(String value: property ) { out.print(value); } out.print(property); 但是我无法获取它的值,反而得到了错误。看起来像是一个输入错误:在访问

我创建了一个多字段自定义小部件,它有两个字段,分别是./urlink和./urlText。 现在,我正尝试使用以下代码将小部件中的值提取到组件的jsp中

String property = properties.get("./urlLink",String[].class);
for(String value: property ) {

  out.print(value);
}

out.print(property);

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

看起来像是一个输入错误:在访问属性名称时,属性名称的前缀不能是
\

我猜你有一个
空点异常
,对吗?这是因为在值映射中没有
/urlink
属性(
属性
)。无论如何,您都应该对此进行检查(这样它就不会出现在没有内容的新页面上)


如果没有帮助——请仔细检查内容中是否有属性(使用
.xml
.infinite.json
扩展名调用页面,然后仔细检查是否可以将其作为普通字符串读取(您应该能够--CRX进行一些神奇的智能类型转换).

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

Property property = properties.get("./urlLink",String.class);
String value = property.getString();
请注意,如果您的返回应该是一个字符串数组,那么您要将值放入的类型应该是一个字符串数组

String[] value

查看属性的文档并获取其中的值。

最好将自定义xtype注册为:

// registering the custom widget with the name dualfield
    CQ.Ext.reg("dualfield", CQ.Ext.form.DualField);
然后,u可以轻松获取值,如下所示:

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


这里multi是多字段为xtype的小部件的名称

,如果您发布了收到的错误,这将非常有用。