0

因此,我试图用 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;

我也设置了标准的 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
...
}
4

1 回答 1

0

问题是您将 Panel 作为对象放在传递给 TimeField 的模型中。

如果设置了默认模型对象,请使用此选项。

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

否则使用

randoTimestamp = new TimeField("randoTimestamp", new PropertyModel<Date>(this.getYourModelObject(), "randoTimestamp"))
于 2016-05-25T12:04:53.423 回答