Struts 1 - So zeigen Sie ActionMessages an

8

Ich zeige ActionMessage s über eine JSP -Datei mit dem folgenden Befehl an:

%Vor%

Jetzt möchte ich nur ausgewählte Nachrichten anzeigen. Wie kann ich angeben, welche Nachricht angezeigt werden soll?

Aktualisiert

Eigentlich habe ich zwei ActionMessages object - messages und warnings . Nun möchte ich beide auf der separaten JSP Seite anzeigen ... Eine Seite zeigt messages und andere für warnings .

Wie kann man auf der Seite JSP angeben, welche Meldungen angezeigt werden sollen?



Aktualisiert - 2

Jetzt habe ich eine seltsame Sache gefunden.

%Vor%

Als ich den obigen Code schrieb, funktionierte nur warnings . Wenn ich die Reihenfolge der obigen beiden Anweisungen umkehrte, funktionierte nur messages .

Es scheint, dass wir nur ein ActionMessages -Objekt in einer Anfrage hinzufügen können. Wenn es korrekt ist, dann wie Nachrichten in zwei ActionMessages Objekte separat angezeigt werden.

    
Yatendra Goel 08.03.2010, 17:19
quelle

2 Antworten

16

Einfach,

Trennen Sie Ihre messages und Ihre warnings : Speichern Sie Ihre Nachrichten und Warnungen in Ihrer Struts-Aktion wie folgt:

%Vor%

Um sie anzuzeigen:

%Vor%

Dies zeigt alle messages an (durch Setzen von message="true" )

%Vor%

Dies zeigt alle warnings an (durch Setzen von message="false" )

%Vor%

AKTUALISIEREN Da Sie jetzt Ihre Frage klären, ist der einfachste Weg, dies zu tun.

Haben Sie eine bestimmte Markierung, die angibt, ob der Benutzer messages oder warnings anzeigen möchte. Fragen Sie bei der Struts-Aktion das Flag an und prüfen Sie, ob der Benutzer Anzeigen von Meldungen oder Warnungen ausgewählt hat. Sie speichern entweder warnings oder messages basierend auf der Benutzerauswahl und zeigen dieselbe Seite (wie oben beschrieben) an, um Nachrichten anzuzeigen.

Der Grund dafür ist, dass Struts (wenn Sie Nachrichten oder Fehler speichern) diese auf Anfrage oder Sitzung mit der folgenden Konstante speichert.

  • Globals.MESSAGE_KEY (wird zugewiesen, wenn Sie saveMessages(request, messages) ausführen)
  • Globals.ERROR_KEY (wird zugewiesen, wenn Sie saveErrors(request, errors) ausführen)

Bei Verwendung von <logic:messagesPresent message="true"> sucht Struts nach dem MESSAGE_KEY (if message = true) oder ERROR_KEY (if message = false) oder beiden (if message = none). Sie haben keine Kontrolle darüber.

<html:messages /> TLD Kommentare sagt:

  

Standardmäßig ruft das Tag die   Bohne wird es von der iterieren   Globals.ERROR_KEY Konstante Zeichenfolge,
  aber wenn dieses Attribut auf 'wahr' gesetzt ist   Die Bohne wird von der   Globals.MESSAGE_KEY Konstante Zeichenfolge.   Auch wenn dies auf 'wahr' gesetzt ist, alle   Wert, der dem Attribut name zugewiesen ist   wird ignoriert.

Sie können auch Scriptlet schreiben, um zu prüfen, ob diese Schlüssel existieren, und dann <logic:iterate /> durch den Schlüssel, um die Nachrichten anzuzeigen (aber das wird zu viel Arbeit sein).

Hoffe, das hilft.

    
Buhake Sindi 08.03.2010, 18:06
quelle
3

Anstatt das Attribut message für die Tags messagesPresent und messages zu verwenden, können Sie das Attribut name verwenden, um den Namen des ActionMessages-Objekts in Seiten-, Anforderungs-, Sitzungs- oder Anwendungsbereich anzugeben .

    
highlycaffeinated 08.03.2010 18:00
quelle

Tags und Links