在 Apache Wicket 的 DateField 中单击日期后立即转发到其他页面

Immediately forward to other page after a date is clicked in DateField in Apache Wicket

如主题 - 在 Apache Wicket 的 DateField 中单击日期后,我想转发到其他页面(类似 setResponsePage 的按钮可与按钮一起使用)。

有什么办法可以实现吗?这是我的日期字段:

    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);

请阅读 DateTimeField 的 javadoc:它包含一些关于如何使用 AjaxFormComponentUpdatingBehavior 对组件进行 ajax 化的提示。

在#onUpdate() 中,您可以使用#setResponsePage()。

找到解决方案,类似于@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);
        }
    };
}