1. Eine der Möglichkeiten, die Aktionsattribute in der Formform in der DMI -Dynamikmethode -Aufruf zu ändern, wurde erläutert. Es gibt zwei weitere Typen. Einer besteht darin, das Methodenattribut im Aktions -Tag in der Konfigurationsdatei von Struts.xml zu ändern, um die Ausführung verschiedener Methoden zur Verarbeitung verschiedener Geschäftslogik anzugeben. Das andere ist die Verwendung von Wildcards. Um das Methodenattribut zu ändern, müssen mehrere Aktionen konfiguriert werden, und die meisten dieser Aktionen sind gleich definiert, sodass diese Definition ziemlich überflüssig ist. Daher kann die Verwendung von Wildcards mehrere logisch verarbeitete Aktionen in einem Aktions -Tag ersetzen.
2. Demonstration: ( Es ähnelt dem vorherigen dynamischen Methodenaufruf zum Ändern des Formular -Formular -Aktionsattributs, und es wurde eine kleine Änderung an die Konfigurationsdatei der Stribs.xml vorgenommen.)
Die Anforderungen haben sich noch nicht geändert. Klicken Sie auf verschiedene Einsenden -Schaltflächen, um dasselbe Formular einzureichen und die verschiedenen Dienste zur Verarbeitung derselben Aktionsverarbeitungsklasse zu übergeben.
⒈First Zeigen Sie ein Formular an, es gibt zwei Einreichungsschaltflächen im Formular, aber sie repräsentieren verschiedene Unternehmen. Der Benutzer meldet sich beim Klicken an, um sich anzumelden. Der Benutzer meldet sich beim Klicken an, um sich zu registrieren.
⒉User Login:
⒊Uperregistrierung:
Der spezifische Code lautet wie folgt:
⑴. Melden Sie sich bei der Registrierungsseite an (index.jsp):
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <! docType html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><html><Head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <srcript Src =" type = "text/javaScript"> $ (function () {$ ("Eingabe: EQ (3)"). Click (function () {/*Dynamisch den Wert des Aktionsattributs im Formular ändern, um die registrierte Anforderung an die Aktionsklasse*/$ ("#Form"). Attr ("Action", "Create");});}); id = "Formular"> Name: <Eingabe type = "text" name = "name"/> <br> <br> Kennwort: <Eingabe type = "password" name = "password"/> <br> <br> <Eingabe type = "value =" login "> <input type ⑵. Code von Struts.xml Konfigurationsdatei
<? name = "*" method = "{1}"> <result name = "userLogin"> web-inf/jsp/userLogin.jsp </result> <result name = "usercreate"> web-inf/jsp/usercreate.jsp </result> </action> </package> </struts> </struts> </struts> Analyse:
1. In dieser Konfigurationsdatei ist ein Wildcard -Zeichen für das Namensattribut im Aktionstag: "*" konfiguriert, und der Wert des Methode -Attributs danach lautet: {1}.
2. Dies bedeutet, dass, wenn der Benutzer auf der Seite index.jsp die Anmeldebaste klickt, die Anforderung von Action = "Login" in Formular: an Struts übergeben wird. Da die Wildcard -Konfiguration in Struts.xml durchgeführt wird, wird "*" als "Login" angesehen, dh name = "login". Der nachfolgende Methodenwert lautet: {1} repräsentiert das erste "*", nämlich method = "login". So finden Streben die Anmeldemethode in der Aktion.Action -Klasse und rufen Sie sie auf. Wenn der Benutzer auf die Registrierungsschaltfläche klickt, ist der Vorgang mit dem Klicken auf die Schaltfläche Anmeldung. Sie können ein kleines Beispiel schreiben, um es zu erleben.
⑶. Aktionskodex:
Paketaktion; importieren com.opensymphony.xwork2.actionsupport; öffentliche Sammelklage erweitert die AktionSverpackung {private String -Name; public String getName () {return name;} public void setName (String name) {this.name = name;} public String login () {System.out.println ("userlogin"; Create () {system.out.println ("Benutzerregistrierung"); zurückgeben "usercreate";}} Natürlich ist die Verwendung von Wildcard-Charakteren nicht nur so einfach, sondern kann auch auch enthalten: "*-*", "book_*" usw. Diese Wildcard-Zeichen können in den Eigenschaften des Aktions-Tags in der Struts.xml-Konfigurationsdatei wie MTHOD- und Klassenattributen oder in der Folge des Ergebnis-Tags verwendet werden:
<!-Definieren Sie ein allgemeines Aktions-Tag-> <Action-Name = "*"> <!-Definieren Sie das Ergebnis-Tag mit Ausdrücken-> <Eltr EREWERN>/web-inf/jsp/{1} .jsp </result> </action> In der obigen Aktionsdefinition lautet der Name der Aktion a *, sodass er mit jeder Aktion übereinstimmen kann. Alle Anfragen werden durch diese Aktion behandelt. Da diese Aktion kein Klassenattribut hat, wird die AktionSverpackungsklasse verwendet, um sie zu handhaben. Da es kein Methodenattribut gibt, ist die Standardeinstellung die Ausführungsmethode und gibt die Erfolgszeichenfolge zurück. Darüber hinaus ist das Namensattribut im Ergebnis -Tag standardmäßig Erfolg, sodass die Aktion immer direkt die im Ergebnis angegebene JSP -Ressource zurückgibt. Daher lautet die Bedeutung der obigen Aktionsdefinition: Wenn der Benutzer A.Action fordert, wird sie zu A.JSP springen; Wenn B.Action angefordert wird, wird es zu B.JSP.
Das obige ist der Aufruf der dynamischen Methode in Struts, die Ihnen vom Editor vorgelegt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!