我在同一页面中有两个wicket反馈面板,并且都响应相同的错误消息

时间:2017-05-30 14:20:42

标签: java wicket feedbackpanel

我在同一页面中有两个不同的Wicket FeedbackPanel,一个用于错误消息,另一个用于成功消息。问题是当我调用feedback1.error(“bla bla bla”)时,两个反馈面板都被绘制了。

feedbackErrorOptionsPanel = new FeedbackErrorPanel("feedbackErrorOptionsPanel");
feedbackErrorOptionsPanel.setOutputMarkupId(true);
feedbackErrorOptionsPanel.setOutputMarkupPlaceholderTag(true);
feedbackErrorOptionsPanel.setEscapeModelStrings(false);
feedbackErrorOptionsPanel.setFilter(new ContainerFeedbackMessageFilter(this));
add(feedbackErrorOptionsPanel);

...

feedbackSuccessOptionsPanel = new FeedbackSuccessPanel("feedbackSuccessOptionsPanel");
feedbackSuccessOptionsPanel.setOutputMarkupId(true);
feedbackSuccessOptionsPanel.setOutputMarkupPlaceholderTag(true);
feedbackSuccessOptionsPanel.setEscapeModelStrings(false);
feedbackSuccessOptionsPanel.setFilter(new ContainerFeedbackMessageFilter(this));
add(feedbackSuccessOptionsPanel);

...

feedbackErrorOptionsPanel.errorWithLink("messaggio da visualizzare", "Per aggiungere clicca qui!", WebPage.class, null);

方法errorWithLink用于添加链接以保持消息错误。这个metod调用我的类中的error()方法来扩展FeedbackPanel

有人能告诉我如何调用feedback1.error来显示第一个和feedback2.success以显示第二个?

2 个答案:

答案 0 :(得分:1)

您应该使用ErrorLevelFeedbackMessageFilter(或ExactLevelFeedbackMessageFilter)而不是ContainerFeedbackMessageFilter来获取所需的行为。有关详细信息,请查看user guide

答案 1 :(得分:1)

FeedbackPanel具有接受IFeedbackMessageFilter的构造函数 - org.apache.wicket.markup.html.panel.FeedbackPanel#FeedbackPanel(java.lang.String, org.apache.wicket.feedback.IFeedbackMessageFilter)

您可以将具有相应级别的org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter传递给他们。