Struts 1 - Anzeige ActionMessages
Ich bin Anzeige ActionMessage
s über eine JSP
- Datei durch den folgenden Befehl:
<logic:messagesPresent message="true">
<ul id="messsages">
<html:messages id="msg" message="true">
<li><bean:write name="msg"/> </li>
</html:messages>
</ul>
</logic:messagesPresent>
Nun möchte ich, um nur ausgewählte Nachrichten. Wie kann ich angeben, welche Meldung angezeigt?
Aktualisiert
Eigentlich habe ich zwei ActionMessages
Objekt - messages
und warnings
.
Jetzt möchte ich anzeigen, der Sie auf separaten JSP
Seite... Eine Seite zu zeigen messages
und andere für warnings
.
So, wie Sie angeben, in die JSP
Seite, die die Nachrichten anzeigen?
Aktualisiert - 2
Nun, ich fand eine seltsame Sache.
saveMessages(request, messages);
saveMessages(request, warnings);
Schrieb ich den oben genannten code, nur warnings
tätig war. Wenn ich die umgekehrte Reihenfolge der oben genannten zwei Aussagen, dann nur messages
tätig war.
Es scheint, dass wir können hinzufügen, nur eine ActionMessages
Objekt in einer Anfrage. Wenn es richtig ist, dann, wie die Anzeige von Nachrichten in zwei ActionMessages
Objekte separat.
- die Globals.XXX_KEY Konstanten gespeichert sind einmal auf Anfrage oder session. Also warum finden Sie Ihre Methoden seltsam.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach,
Trennen
messages
und Ihrewarnings
: In Ihrem struts-Aktion, sichern Sie Ihre Nachrichten und Warnungen wie folgt:Anzeigen:
Dieser zeigt alle
messages
(durch Einstellungmessage="true"
)Dieser zeigt alle
warnings
(durch Einstellungmessage="false"
)UPDATE Sehen, dass Sie jetzt die Reinigung deiner Frage, der einfachste Weg wäre, dies zu tun.
Haben bestimmte Kennzeichen, die angeben, ob der Benutzer anzeigen möchte
messages
oderwarnings
. Auf die Struts-Aktion, die Anfrage-Flagge und überprüfen Sie, ob der Benutzer ausgewählt hat, anzeigen von Meldungen oder Warnungen.Sie speichern dann entweder
warnings
odermessages
basierend auf der Auswahl des Benutzers und zeigen die gleiche Seite (wie oben geschrieben), um Meldungen anzuzeigen.Der Grund dafür ist, Streben (beim speichern von Nachrichten oder Fehler) speichert es auf Anfrage oder session mit den folgenden Konstanten.
saveMessages(request, messages)
)saveErrors(request, errors)
)bei der Verwendung
<logic:messagesPresent message="true">
Verstrebungen sucht für dieMESSAGE_KEY
(wenn message=true) oderERROR_KEY
(wenn message=false) oder beide (wenn message=none). Sie haben keine Kontrolle über, die.<html:messages />
TLD Kommentare Mitgliedstaaten:Kann man auch schreiben scriptlet um zu überprüfen, ob dieser Schlüssel vorhanden ist, dann
<logic:iterate />
durch die-Taste zum anzeigen der Nachrichten (aber das wird zu viel Arbeit).Hoffe, das hilft.
Anstatt die
message
- Attribut auf diemessagesPresent
undmessages
tags, die Sie verwenden können, diename
Attribut geben Sie den Namen des ActionMessages-Objekt, dass Sie in der Seiten -, request -, session-oder application-scope.property
Attribut. Other than, die ich denke, Sie hätte zu Durchlaufen, die ActionMessages selbst.