2012-01-12 66 views
0

我已将自定义验证添加到我的页面,并且此验证从业务逻辑层调用,之后我单击UI上的“保存”按钮,即AjaxSubmitLinkApache检票验证

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

因此,例如,我填写时间字段“321”和我有错误控制台:

WARN org.apache.wicket.protocol.http.WebSession - 留下 组件的针对性的反馈消息未渲​​染。这可能是 ,因为您缺少页面上的FeedbackPanel。消息: [FeedbackMessage消息= “翻译键[hours.RangeValidator] 未找到的语言[英文]!”,记者=小时,水平= ERROR]

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

谢谢!

+0

看起来你有2个问题。您错过了一个反馈面板,并且在资源文件中缺少一个键。你能显示一些代码吗? – bert 2012-01-12 22:34:41

回答

6

因为您做了Ajax请求,所以您必须将反馈面板添加到AjaxRequestTarget(因此它会根据每个请求更新自身)。

你必须虽然覆盖onError方法:

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

谢谢,它的工作原理! – psisoyev 2012-01-13 11:29:22