2013-07-12 3 views
1

У меня проблема в моем DateTextField в Wicket. Я хочу установить по умолчанию значение ничего, null, поэтому дата может быть выбрана после того, как кто-то ее выберет. Но по умолчанию он устанавливает значение в текущий день. Как «очистить» его, так что в этом поле datetextfield ничего нет? Вот мой DateField код:Apache Wicket DateTextField clear

DateField date_insert_date_from = new DateField("insert_date_from", new PropertyModel(this, "date")) { 

     /** 
     * Format date to yyyy-MM-dd pattern. 
     */ 
     @Override 
     protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) { 
      return DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd"); 
     } 
    }; 
    form.add(date_insert_date_from); 
+2

показать свое определение 'this.date' вашей модели. У него есть «нуль»? – kan

ответ

3

Как @kan говорит, что вам нужно, чтобы убедиться, что modelobject для DateField является null.

Простой способ сделать так:

DateField date_insert_date_from = new DateField("insert_date_from", new Model<Date>(null)); 

Теперь, если кто-то вводит дату в DateField и отправляет форму, модель будет содержать выбранную дату, и вы можете получить его, написав:

Date chosenDate = date_insert_date_from.getModelObject(); 

Если вы хотите использовать propertymodel, как вы делаете, вы должны убедиться, что объект, на котором propertymodel действия (this в вашем случае) имеет поле, способное хранить дата и геттер/сеттер методы, которые поле.

В вашем случае, this.date должен быть инициализирован с null и this должны иметь

public Date getDate() 

и

public void setDate(Date date) 

методы.

Смежные вопросы