Apache wicket验证

时间:2012-01-12 16:01:54

标签: apache validation wicket

我已将自定义验证添加到我的页面,在我点击UI上的“保存”按钮AjaxSubmitLink后,从业务逻辑层调用此验证。

在我的页面上,我有apache wicket DateTimeField,但它的验证无法正常工作:FeedbackPanel中没有出现错误消息,这是在页面上添加的,我的自定义验证正确显示在那里。

因此,例如我用“321”填充小时字段,我将在控制台中出错:

  

WARN org.apache.wicket.protocol.http.WebSession -   组件目标反馈消息未被渲染。这可以   是因为你在页面上缺少一个FeedbackPanel。信息:   [FeedbackMessage message =“关键字的翻译[hours.RangeValidator]   找不到语言[en]!“,记者=小时,等级=错误]

也许有人有类似的问题,并为此有解决方案?

谢谢!

1 个答案:

答案 0 :(得分:6)

因为您执行了Ajax-Request,所以您必须将反馈面板添加到AjaxRequestTarget(因此它会在每次请求时自行更新)。

您必须覆盖onError方法:

add(new AjaxSubmitLink() {
    @Override
        protected void onError(final AjaxRequestTarget target, final Form form) {
        target.addComponent(yourFeedbackPanel);
    }
}