Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在使用特定于字段的反馈标签时,如何避免多余的Wicket日志警告?_Java_Validation_Wicket_Feedbackpanel - Fatal编程技术网

Java 在使用特定于字段的反馈标签时,如何避免多余的Wicket日志警告?

Java 在使用特定于字段的反馈标签时,如何避免多余的Wicket日志警告?,java,validation,wicket,feedbackpanel,Java,Validation,Wicket,Feedbackpanel,我使用“FeedbackLabels”来显示特定于组件的验证消息,基于本文中的想法和代码: 问题是,使用此类反馈标签进行验证消息的页面在日志中充斥着多余的警告: 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

我使用“FeedbackLabels”来显示特定于组件的验证消息,基于本文中的想法和代码:

问题是,使用此类反馈标签进行验证消息的页面在日志中充斥着多余的警告:

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声称:

以组件为目标的反馈信息未被记录。这可能 可能是因为页面上缺少反馈面板

问题是,正如您在屏幕截图中所看到的,这些消息被呈现(在每个字段附带的反馈标签中),并且我do在页面上也有一个反馈面板(但是它使用ComponentFeedbackMessageFilter过滤组件目标消息,这样它们就不会显示两次)

无论如何,这些日志消息显然是无用的我怎样才能让Wicket闭嘴呢?(没有诉诸暴力手段,比如将日志记录级别更改为致命)Daan的FeedbackLabel实现中是否应该修复某些问题(见下文)


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

// (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有一个markRendered()函数。我会为每个添加到标签的消息添加一个调用。请参阅反馈面板的代码。

哦,如果使用Wicket 1.4有什么不同的话。效果很好,谢谢!(调整了FeedbackLabel的onBeforeRender(),以便在组件内调用markRendered()。getFeedbackMessage()!=null条件。)我想我应该在博客文章中添加一条评论,建议这一改进,以防原始作者或其他人仍然使用相同的FeedbackLabel代码。