我在同一页面中有两个不同的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以显示第二个?
答案 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
传递给他们。