2013-02-13 73 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"