2016-05-16 3 views
0

Итак, я пытаюсь заменить то, что было текстовым полем, чтобы получить время от моих пользователей с помощью TimeField (типа, указанного в заголовке).org.apache.wicket.extensions.yui.calendar.timefield Как использовать wicket

Я сталкиваюсь со всеми проблемами. А именно, что 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. Должен ли я установить его равным чему-то еще? Строка, ect ???

public class wackyVO implements Serializable { 

private static final long serialVersionUID = -2592713376857273204L; 

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

Не ваш PropertyModel просто указывает на неправильное поле? Вы указали «dueTimestamp» как имя поля, чтобы получить Date from, но на самом деле это ваш TimeField, следовательно, ClassCastException. Вероятно, вы захотите указать его на «randoTimeStamp»: 'new PropertyModel (это,« randoTimeStamp »))' – Tekki

+0

Хороший глаз. Но это не проблема, я думаю, что калитка-компилятор заметил бы это. Это была плохая работа редактирования с моей стороны. – SoftwareSavant

ответ

0

Проблема в том, что вы помещаете свою Panel в качестве объекта в модель, которую вы передаете на TimeField.

используйте это, если установлен по умолчанию объект модели.

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

В противном случае используйте

randoTimestamp = new TimeField("randoTimestamp", new PropertyModel<Date>(this.getYourModelObject(), "randoTimestamp")) 
Смежные вопросы