"FeedbackLabels"を使用して、このブログ記事のアイデアとコードに基づいてコンポーネント固有の検証メッセージを表示しています:User friendly form validation with Wicketフィールド固有のFeedbackLabelsを使用するときに、不要なWicketログ警告を回避するにはどうすればよいですか?
コンポーネント標的化さフィードバックメッセージがレンダリングされていない残っていた。
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の請求:
問題は、検証メッセージのために、このようなFeedbackLabelsを使用してページが余分警告がログにあふれ、です。これは、 があなたのページにFeedbackPanelを見つけられていない可能性があります。
事は、あなたがスクリーンショットで見ることができるように、これらのメッセージが(各フィールドを伴うFeedbackLabelsに)レンダリングた、と私はもページ上FeedbackPanelを持っているん(しかし、それはコンポーネントをフィルタであり、ターゲットメッセージは、ComponentFeedbackMessageFilterを使用して、2回表示されないようにします)。いずれの場合においても
、これらのログメッセージは明らかに有用ではありません。 これについてWicketを閉めさせるにはどうすればいいですか?? (ログレベルをFATALに変更するなどの強引な方法に頼らずに)DaanのFeedbackLabel実装で何か修正する必要がありますか(下記参照)?
付録:基本的にFeedbackLabel(extends Label)は、関連コンポーネントにフィードバックメッセージがあるかどうかを確認し、フィードバックメッセージがある場合はそれを表示します。あなたはarticleからコードをロードする気にすることはできません場合は、ここに関連する部分です:
// (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(""));
}
}
ああ、違いがある場合は、Wicket 1.4を使用してください。 – Jonik