In diesem Artikel wird hauptsächlich die detaillierte Erklärung der Optionsfelder des Struts2 -Frameworks und verwandte Beispiele für die Umwandlung von Aufzählungstypen wie folgt untersucht.
Mit Struts2 -Tags besteht kein Zweifel daran, dass Sie zuerst die Tag -Bibliothek vorstellen müssen:
<%@ taglib prefix = "s" uri = "/struts-tags"%>
Angenommen, der Wert der Liste in der Radio -Radio -Box ist eine Kartensammlung:
<s: radio list = "#{'Man': 'männlich', 'women': 'weiblich'}" name = "gender" listkey = "key" listValue = "value" value = "Man '" thema = "einfach"/> Notiz:
1. Das Namensattribut ist auch das Namensattribut des Namens, das dem HTML -Code entspricht.
2. Das ListKey -Attribut entspricht dem Wert -Attribut des HTML -Codes.
3. Das ListValue -Attribut entspricht dem Attribut HTML -Code -Label.
4. Das Wertattribut bezieht sich auf: Wenn der Wert des Wertes mit dem Wert im Satz übereinstimmt, wird es ausgewählt (wenn der Wert des Wertes eine Zeichenfolge ist, müssen Sie einzelne Anführungszeichen hinzufügen).
Nach der Ausführung wird es in den HTML -Code analysiert, wie in der Abbildung gezeigt:
Lassen Sie es uns durch einen Fall erklären:
Wenn Sie den Benutzer ändern, wenden Sie sich an die Änderungsschnittstelle und wiederholen Sie das Geschlecht des Benutzers in der Änderungsschnittstelle. Hier verwenden wir die Aufzählung, um das Geschlecht darzustellen.
Die anfängliche Benutzeroberfläche:
Projektstruktur:
Benutzeroberfläche:
<body> <form action = "enumAction_test.action" methode = "post"> Bitte wählen Sie Geschlecht: <s: radio list = "#{'Man': 'männlich', 'Frauen': 'weiblich'}" name = "Geschlechts" listkey = "key" listValue = "value" value = "Man '" "thema".Hintergrundaktionscode:
öffentliche Klasse Enderaction {/*Geschlecht definieren, Standard ist männlich*/privates Geschlecht Geschlecht = Geschlecht.Man; öffentliches Geschlecht getGender () {return Geschlecht;} public void setAlder (Geschlechtsgeschlecht Hinweis: Da wir Enum -Typen verwenden, müssen wir die Typ -Konvertierung durchführen (die spezifische Konvertierungsmethode wurde im vorherigen Blog erwähnt).
Aufzählung Typ Conversion Class Code:
Die öffentliche Klasse EnumtypeConverter erweitert DefaultTypeConverter {@SuppressWarnings ("rawttypes") @Override öffentliches Objekt ConvertValue (Karte <String, Objekt> Kontext, Objektwert, Klasse Totype) {/*konvertieren von der Vorderseite zum Backend, vom String -Typ -Typ. (String []) Wert; Return Gender.Valueof (Params [0]);} else if (Totype == string.class) {/*übergeht von der Hintergrundaktion in den Vordergrund, dh, konvertieren des Geschlechtstyps in String -Typ*//*Konvertieren Sie den Wert in das Geschlecht.Definieren Sie die Eigenschaftendatei für die globale Konvertierung:
com.lixue.bean.gender = com.lixue.converter.enumtypeconverter
Die Ergebnisseite nach dem Sprung (Benutzeränderungsschnittstelle):
<body> Ihr Geschlecht: <s: radio list = "#{'Man': 'männlich', 'women': 'weiblich'}" name = "Geschlecht" listkey = "key" listValue = "value" value = "Geschlecht" thema = "einfach"/> </body>Hinweis: Wie kann ich das aktuell ausgewählte Geschlecht in der Änderungsschnittstelle wiederholen? Der Schlüssel ist, den Wertwert zu betrachten. Ich habe ein Geschlecht im obigen Code geschrieben. Tatsächlich ist dieses Geschlecht eine Eigenschaft, die in der Aktion definiert ist. Als wir im vorherigen Artikel über OGNL sprachen, sagten wir, dass die Eigenschaften in der Aktion im Wertstapel gespeichert werden. Wir nehmen die Eigenschaften im Wertstapel und können direkt über den Attributnamen erhalten werden, ohne sie über die Form von #NameSpace zu erhalten. Passen Sie es nach dem Erhalten mit der vorherigen Kartensammlung an, um festzustellen, ob sie es überprüfen soll.
1. Einige Leute haben möglicherweise Fragen, warum kann ListKey direkt auf den Schlüssel geschrieben werden und ListValue direkt auf den Wert geschrieben werden.
ANTWORT: Wenn Struts2 die Listensammlung im <S: Radio> Tag analysiert, wird Iterator verwendet. Die Funktion des Iterators besteht darin, das Ergebnis (jedes Eingabefiel) oben im Stapel des Wertstapels bei jedem Wert zu speichern. Bei Verwendung des OGNL -Ausdrucks können Sie daher das Attribut des Objekts (die Attributnamen des Eintrags "direkt verwenden, um den Wert zu erhalten. Es ist nicht erforderlich, den # Namespace zu verwenden. Schüler, die den OGNL -Ausdruck nicht verstehen, können den vorherigen Artikel lesen.
2. Wir werden feststellen, dass wir beim Schreiben von Tags immer das Attributthema schreiben. Die Funktion dieses Attributs besteht darin, zu vermeiden, dass Struts2 beim Parsen von Tags einen unnötigen Code generiert, aber es ist notwendig, ihn jedes Mal zu schreiben. Ist es nicht ein Betrug? Tatsächlich können wir eine Konstante in Struts.xml -Datei konfigurieren, um den Effekt zu erzielen:
<!-Struts2 Tag-Themenstil-> <Constant Name = "Strutss.ui.theme" value = "Simple" />
Das Erlernen dieser Streben -Frameworks ist ein bisschen so, als würde man den blauen Himmel durch die Wolken und den Nebel sehen. Ich habe ein klareres Verständnis der Java -Frameworks, Frühling, MyBatis usw., und alle Dinge sind miteinander verbunden. . .
Das obige ist der gesamte Inhalt dieses Artikels über die detaillierte Erläuterung des Struts2 -Optionsfelds und das Beispiel für den Konvertierungscode -Beispiel für den Aufzählungstyp. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!