Немедленно переместитесь на другую страницу после нажатия на дату в DateField в Apache Wicket
Как в теме - я хочу пересылать на другую страницу после того, как в DateField в Apache Wicket нажата дата (что-то вроде setResponsePage работает с кнопками).
Есть ли способ достичь этого? Вот мой DateField:
final DateField datePublishDateFrom = new DateField("publishDateFromInput", new Model<Date>(Const.DATE)) {
@Override
protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
return DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
}
};
add(datePublishDateFrom);
2 ответа
Решение
Нашел решение, похожее на то, что предложил @svenmeier. Добавление поведения работает просто отлично
final DateField datePublishDateFrom = new DateField("publishDateFromInput", new Model<Date>(Const.DATE)) {
@Override
protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
DateTextField dateInput = DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
dateInput.add(createAjax());
return dateInput;
}
};
private AjaxFormComponentUpdatingBehavior createAjax() {
return new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
setResponsePage(BasePage.class);
}
};
}
Пожалуйста, прочитайте Javadoc DateTimeField: он содержит несколько советов о том, как настроить компонент с помощью AjaxFormComponentUpdatingBehavior.
В #onUpdate() вы можете просто использовать #setResponsePage().