使用特定于字段的反馈标签时如何避免多余的 Wicket 日志警告? [英] How to avoid superfluous Wicket log warnings when using field-specific FeedbackLabels?

查看:21
本文介绍了使用特定于字段的反馈标签时如何避免多余的 Wicket 日志警告?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用FeedbackLabels"来显示特定于组件的验证消息,基于此博客文章中的想法和代码:,这是相关部分:

//(此代码作者为大安,StuQ.nl//它是在 Apache 2.0 许可下获得许可的.)@覆盖受保护的无效 onBeforeRender() {super.onBeforeRender();if(component.getFeedbackMessage()!=null) {if(this.text!=null) {setDefaultModel(this.text);} 别的 {setDefaultModel(新模型(component.getFeedbackMessage().getMessage()));}this.add(new AttributeModifier("class", true, new Model("feedbackLabel" + component.getFeedbackMessage().getLevelAsString()));} 别的 {setDefaultModel(新模型(""));}}

解决方案

FeedbackMessage 有一个 markRendered() 函数.我会为添加到标签的每条消息添加一个调用.请参阅反馈面板的代码.

I'm using "FeedbackLabels" to show component-specific validation messages, based on ideas and code in this blog post: User friendly form validation with Wicket.

Problem is, pages using such FeedbackLabels for validation messages flood the log with superfluous warnings:

2012-05-04 10:43:32,824 ["http-bio-8080"-exec-6] WARN  org.apache.wicket.protocol.http.WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page.  Message: [FeedbackMessage message = "Tilille on pakollinen tieto", reporter = toAccount, level = ERROR]
2012-05-04 10:43:32,824 ["http-bio-8080"-exec-6] WARN  org.apache.wicket.protocol.http.WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page.  Message: [FeedbackMessage message = "Tililtä on pakollinen tieto", reporter = fromAccount, level = ERROR]
2012-05-04 10:43:32,824 ["http-bio-8080"-exec-6] WARN  org.apache.wicket.protocol.http.WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page.  Message: [FeedbackMessage message = "Viitenro on pakollinen tieto", reporter = reference, level = ERROR]
2012-05-04 10:43:35,039 ["http-bio-8080"-exec-6] WARN  org.apache.wicket.protocol.http.WebSession - Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page.  Message: [FeedbackMessage message = "Tilille on pakollinen tieto", reporter = toAccount, level = ERROR]
[...]

Wicket claims that:

Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page.

Thing is, as you can see in the screenshot, those messages were rendered (in the FeedbackLabels accompanying each field), and I do also have a FeedbackPanel on the page (but it filters the component-targetted messages, using ComponentFeedbackMessageFilter, so that they aren't shown twice).

In any case, these log messages clearly aren't useful. How can I make Wicket shut up about this? (Without resorting to brute force methods like changing logging level to FATAL.) Should something be fixed in Daan's FeedbackLabel implementation perhaps (see below)?


Appendix: Basically FeedbackLabel (extends Label) checks if the related component has a feedback message, and if so, displays it. If you can't be bothered loading the code from the article, here's the relevant part:

// (Author of this code is Daan, StuQ.nl
// it's licenced under Apache 2.0 license.)
@Override
protected void onBeforeRender() {
    super.onBeforeRender();

    if(component.getFeedbackMessage()!=null) {
        if(this.text!=null) {
            setDefaultModel(this.text);
        } else {
            setDefaultModel(new Model(component.getFeedbackMessage().getMessage()));
        }

        this.add(new AttributeModifier("class", true, new Model("feedbackLabel " + component.getFeedbackMessage().getLevelAsString())));
    } else {
        setDefaultModel(new Model(""));
    }
}

解决方案

FeedbackMessage has a markRendered() functon. I would add a call to this for each message that whas added to a Label. Seethe code of the FeedbackPanel.

这篇关于使用特定于字段的反馈标签时如何避免多余的 Wicket 日志警告?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆