2013-02-13 74 views
3

我在我的组件中使用xtype datefield。我想从我的对话框中获取值作为日期而不是string.Is是否有任何方法获取除了字符串之外的任何其他类型的对话框值?在这里我需要日期。在cq5中获取日期作为类型日期

回答

11

是的。您可以使用ValueMap类的get(java.lang.String name, java.lang.Class<T> type)方法获取值并将其转换为指定的类型。

即如果您希望您的财产的值作为日期,您可以使用以下语法。

Date date = properties.get("date", Date.class); 

您也可以get(java.lang.String name, T defaultValue)方法返回的情况下,酒店没有在资源库中的默认值。 For Ex

Date date = properties.get("date", new Date()); 
Date date = properties.get("text", "default_text"); 

默认值还用于定义将值转换为的类型。即,如果默认值是String,它将返回一个String,或者如果默认值是Date对象,它将返回一个Date对象。

注:性能对象是ValueMap

+0

我以前日期的日期= properties.get (“date”,new Date());但是Java新的Date()正在被打印。我无法从我的组件获取“日期”值。有人能帮我吗? – manojpt 2016-04-19 06:55:02

+0

是你的财产的名称“日期”还是别的吗? – rakhi4110 2016-04-19 06:58:44

+0

是它的名字而已。我可以得到textfield xtype,但不是datefield xtype。 – manojpt 2016-04-19 06:59:49

1

当我们使用CQ5对话框的DateField,它的价值获取CRX保存类型 '日期' 是默认。当从CRX检索属性值到CQ页面时,我们必须显式地将类型转换为java.util.Date对象,如下所述。

java.util.Date date = properties.get("publishDate",java.util.Date.class); 
+1

使用xtype datefield时,其值在CRX中以字符串形式存储。当使用xtype datetime时,它将存储为Date。 – rakhi4110 2014-04-21 12:03:02

0

我要重振这个老问题,因为我遇到了同样的问题,并且发现我认为这是一个更优雅的解决方案。

如果您的对话框您在野外使用以下配置你只会得到一个日期选择字段,但它会保存在CRX-DE日期:

xtype="datetime" 
hideTime="{Boolean}true"