2016-05-16 32 views
0

所以我試圖取代什麼是文本字段,以獲得時間從我的用戶與TimeField(標題中提到的類型)。org.apache.wicket.extensions.yui.calendar.timefield如何使用檢票口

我遇到了各種問題。也就是說,TimeField絕對必須是Timefield類型,並且不易轉換爲java.util.Date甚至字符串?非常挫敗。在任,這樣,我不斷收到

Caused by: java.lang.ClassCastException: com.usaa.infrastructure.calculator.admin.panels.SloDefinitionEditPanel$21 incompatible with java.util.Date 
at org.apache.wicket.extensions.yui.calendar.DateTimeField.onBeforeRender(DateTimeField.java:429) 

所以基本上,這就是我在我的面板:

private TimeField       dueTimestamp   = null; 

我成立了standartd Timefield類,以及...

randoTimestamp = new TimeField("randoTimestamp", new PropertyModel<Date>(this, "randoTimestamp")) 
    { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public boolean isEnabled() 
     { 
      return readOnly ? false : true; 
     } 

     @Override 
     protected boolean use12HourFormat(){ 
      return false; 
     } 


    }; 

是否有重寫或我可以用來幫助緩解這個java.util.date問題?幾乎忘了提及,我將DAO對象設置爲java.util.Date對象。我應該把它等於別的東西嗎?字符串,等等

public class wackyVO implements Serializable { 

private static final long serialVersionUID = -2592713376857273204L; 

... 
private Date randoTimeStamp; //<-- This variable 
... 
} 
+0

是不是你PropertyModel簡單地指向了錯誤的領域?您指定「dueTimestamp」作爲字段名稱來獲取Date,但這實際上是您的TimeField,因此是ClassCastException。你可能想把它指向「randoTimeStamp」:'new PropertyModel (this,「randoTimeStamp」))' – Tekki

+0

Good Eye,但是,那不是問題,我認爲wicket編譯器會發現那個。對我而言,這是一個糟糕的編輯工作。 – SoftwareSavant

回答

0

問題是,您將面板作爲對象放入您傳遞給TimeField的模型中。

如果您的默認modelObject已設置,請使用此項。

randoTimestamp = new TimeField("randoTimestamp", new PropertyModel<Date>(this.getDefaultModelObject(), "randoTimestamp")) 

否則使用

randoTimestamp = new TimeField("randoTimestamp", new PropertyModel<Date>(this.getYourModelObject(), "randoTimestamp"))