首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用特定字段的FeedbackLabels时避免不必要的Wicket日志警告?

如何在使用特定字段的FeedbackLabels时避免不必要的Wicket日志警告?
EN

Stack Overflow用户
提问于 2012-05-04 08:54:50
回答 1查看 739关注 0票数 3

我使用"FeedbackLabels“来显示特定于组件的验证消息,这是基于博客文章:使用Wicket对用户友好的表单验证中的思想和代码。

问题是,使用这样的FeedbackLabels进行验证消息的页面在日志中充斥着多余的警告:

代码语言:javascript
复制
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声称:

组件目标反馈消息未呈现。这可能是因为页面上缺少一个FeedbackPanel。

问题是,正如您在屏幕截图中看到的,这些消息是呈现的(在每个字段的FeedbackLabels中),而I do在页面上也有一个FeedbackPanel (但是它使用ComponentFeedbackMessageFilter过滤了组件目标的消息,这样就不会显示两次)。

无论如何,这些日志消息显然是无用的。,我怎么才能让Wicket闭嘴呢?(不诉诸蛮力的方法,比如将日志级别更改为致命的。)应该在Daan的FeedbackLabel实现中修复一些东西吗(见下文)?

附录:基本上,FeedbackLabel (扩展标签)检查相关组件是否有反馈消息,如果有,则显示它。如果您不介意从文章加载代码,下面是相关的部分:

代码语言:javascript
复制
// (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(""));
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-04 10:02:05

FeedbackMessage有一个markRendered()函子。对于添加到标签中的每条消息,我都会添加一个调用。查看FeedbackPanel的代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10445703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档