2016-05-16 6 views
0

私は、(タイトルに記載されているタイプの)TimeFieldを使ってユーザから時間を得るためにテキストフィールドを置き換えることを試みています。org.apache.wicket.extensions.yui.calendar.timefield wicketを使用する方法

私はあらゆる種類の問題に遭遇しています。つまり、TimeFieldは絶対にTimefield型でなければならず、java.util.Dateまたは文字列にも簡単に変換できません。非常にfrustatring。いずれのケースでは、私はこれは私が私のパネルに持っているものなので、基本的に

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) 

を得続ける:...私もstandartd Timefieldクラスを設定

private TimeField       dueTimestamp   = null; 

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"を指定しましたが、これは実際にあなたのTimeField、したがってClassCastExceptionです。新しいプロパティモデル(this、 "randoTimeStamp")) ' – Tekki

+0

グッドアイ、しかし、それは問題ではなかった、私はウィッケットコンパイラがそれを見つけただろうと思う。それは私の悪い編集仕事だった。 – SoftwareSavant

答えて

0

問題は、PanelをTimeFieldに渡すモデルにオブジェクトとして配置することです。

デフォルトのmodelObjectが設定されている場合は、これを使用します。

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

そうでない場合

randoTimestamp = new TimeField("randoTimestamp", new PropertyModel<Date>(this.getYourModelObject(), "randoTimestamp")) 
関連する問題