2017-05-30 1 views
1

Ich habe zwei verschiedene Wicket FeedbackPanel in der gleichen Seite, eine ist für Fehlermeldungen und die andere für Erfolg Nachrichten. Das Problem ist, wenn ich feedback1.error ("bla bla bla") rufe, wurden beide Feedbackpanels gemalt.Ich habe zwei Wicket-Feedback-Panel in der gleichen Seite und beide reagieren auf die gleiche Fehlermeldung

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); 

Die Methode errorWithLink wird verwendet, um einen Link insisde des Nachrichtenfehlers hinzuzufügen. Diese Methode ruft die error() -Methode innerhalb meiner Klasse auf, die FeedbackPanel erweitert.

Kann mir jemand sagen, wie kann ich feedback1.error aufrufen, um mit dem ersten anzuzeigen und feedback2.success mit dem zweiten anzuzeigen?

Antwort

1

FeedbackPanel hat einen Konstruktor, der IFeedbackMessageFilter akzeptiert - org.apache.wicket.markup.html.panel.FeedbackPanel#FeedbackPanel(java.lang.String, org.apache.wicket.feedback.IFeedbackMessageFilter).

Sie können org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter mit der jeweiligen Ebene an beide übergeben.

+0

vielen Dank. Es klappt –

1

sollten Sie ErrorLevelFeedbackMessageFilter (oder ExactLevelFeedbackMessageFilter) anstelle von ContainerFeedbackMessageFilter verwenden, um das gewünschte Verhalten zu erhalten. Für weitere Details überprüfen Sie die .

+0

vielen Dank. Es funktioniert –

Verwandte Themen