1

我在同一页面中有两个不同的 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 方法用于在消息错误中添加链接。这个方法在我的类中调用了扩展 FeedbackPanel 的 error() 方法

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

4

2 回答 2

1

您应该使用 ErrorLevelFeedbackMessageFilter(或 ExactLevelFeedbackMessageFilter)而不是 ContainerFeedbackMessageFilter 来获得所需的行为。有关更多详细信息,请查看用户指南

于 2017-05-30T15:24:11.297 回答
1

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

您可以将org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter各自的级别传递给他们两个。

于 2017-05-30T15:25:46.840 回答