Das Übergeben von Parametern bedeutet, Parameter auf den Programmhintergrund zu übertragen. Der Hintergrund kann eine gewisse Verarbeitung durchführen und dann den Inhalt in der Datenbank speichern.
Es gibt viele Methoden zum Übergeben von Parametern, wie sie nacheinander erläutert wurden.
1. Direkte Parametermethode in Aktion
Es gibt die folgende Index.jsp -Datei
Die Codekopie lautet wie folgt: <? XML Version = "1.0" coding = "gb18030"?>
<%@ page Language = "java" contentType = "text/html; charset = gb18030"
pageCoding = "gb18030"%>
<%
String path = request.getContextPath ();
String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/";
%>
<! DocType html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transsitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<kopf>
<meta http-äquiv = "content-type" content = "text /html; charset = gb18030" />
<Base href = "< %= Basepath %>"/>
<title> Titel hier einfügen </title>
</head>
<body>
Verwenden Sie das Aktionsattribut, um den Parameter zu empfangen
</body>
</html>
Für <a> </a> übergeben Sie zwei Parameter an das Programm, der ein Name ist und das andere Alter ist. Die Konfiguration in Struts.xml lautet wie folgt:
Kopieren Sie den Code-Code wie folgt: <? XML Version = "1.0" coding = "utf-8"?>
<! DocType stolz öffentlich
"-// Apache Software Foundation // DTD Struts-Konfiguration 2.0 // en"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<Struts>
<Constant Name = "Struts.DevMode" value = "true" />
<package name = "user" extends = "Struts-Default" Namespace = "/user">
<action name = "user">
<Eltr EREMENT> /USER_ADD_SUCCESS.JSP </result>
</action>
</package>
</Struts>
Wie sollen wir unsere Benutzeraktion zu diesem Zeitpunkt schreiben? Beispiele sind wie folgt:
Die Codekopie lautet wie folgt: Paket com.bjsxt.struts2.user.Action;
import com.opensymphony.xwork2.actionsupport;
Die Benutzeraktion der öffentlichen Klasse erweitert die AktionSverpackung {
privater Zeichenfolge Name;
privates int Alter;
public String add () {
System.out.println ("name =" + name);
System.out.println ("Age =" + Age);
Erfolgserfolg;
}
public String getName () {
Rückgabename;
}
public void setName (String Name) {
this.name = name;
}
public int getageage () {
Rückkehralter;
}
public void setage (int ay) {
this.age = Alter;
}
}
Es ist sehr einfach, es definiert zwei Eigenschaften. HINWEIS: Die Set- und GET -Methoden dieser beiden Eigenschaften müssen geschrieben werden, und die Methode der schnellen Generation von Eclipse wird verwendet, was sehr einfach ist. Auf diese Weise druckt das obige Programm das gewünschte Ergebnis, wenn es ausgeführt wird
Name = A und Alter = 8.
Die Erklärung lautet wie folgt: Erstens überträgt Struts2 automatisch Parameter und wir müssen nicht an diesem Prozess teilnehmen. Zweitens passieren Streben Parameter, um Methoden zu setzen und zu erhalten, nicht Namen und Altersattribute. Das heißt, wenn wir den Namen in anderen Namen wie Benutzername ändern, aber die Methoden immer noch festgelegt und GetName, gibt es keinen Unterschied zwischen der Implementierung der gesamten Funktion. Es ist nur ein bisschen umständlich. Drittens und der wichtigste Punkt ist, dass wir, wenn es viele Attribute gibt, viele Set- und Erhaltensmethoden benötigen, was sehr unpraktisch ist, sodass die folgende Methode erweitert wird.
2. Aktion Klassenobjektmethode hinzufügen
Zu diesem Zeitpunkt sind die Eigenschaften in unserer 1 in eine Klasse eingeteilt, wie beispielsweise der Benutzer
Die Codekopie lautet wie folgt: Paket com.bjsxt.struts2.user.model;
Benutzer der öffentlichen Klasse {
privater Zeichenfolge Name;
privates int Alter;
public String getName () {
Rückgabename;
}
public void setName (String Name) {
this.name = name;
}
public int getageage () {
Rückkehralter;
}
public void setage (int ay) {
this.age = Alter;
}
}
Dies erleichtert das Schreiben im Aktionskurs erheblich
Die Codekopie lautet wie folgt: Paket com.bjsxt.struts2.user.Action;
import com.bjsxt.struts2.user.model.user;
import com.opensymphony.xwork2.actionsupport;
Die Benutzeraktion der öffentlichen Klasse erweitert die AktionSverpackung {
privater Benutzerbenutzer;
public String add () {
System.out.println ("name =" + user.getName ());
System.out.println ("age =" + user.getage ());
Erfolgserfolg;
}
öffentlicher Benutzer getUser () {
Benutzer zurückgeben;
}
public void setUser (Benutzerbenutzer) {
this.user = user;
}
}
Hinweis: Zu diesem Zeitpunkt müssen wir selbst kein Benutzerobjekt manuell generieren. Dieser Vorgang wird automatisch durch Struts2 abgeschlossen.
Und die URL muss zu diesem Zeitpunkt geändert werden, dh das <a> </a> Tag im Index wird geändert:
Die Codekopie lautet wie folgt: <? XML Version = "1.0" coding = "gb18030"?>
<%@ page Language = "java" contentType = "text/html; charset = gb18030"
pageCoding = "gb18030"%>
<%
String path = request.getContextPath ();
String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/";
%>
<! DocType html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transsitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<kopf>
<meta http-äquiv = "content-type" content = "text /html; charset = gb18030" />
<Base href = "< %= Basepath %>"/>
<title> Titel hier einfügen </title>
</head>
<body>
Verwenden Sie das Domänenmodell, um Parameter zu empfangen
</body>
</html>
Ändern Sie in den oben genannten Abschnitt mit 18 Zeilen.
Das obige beschreibt zwei Methoden des Struts2 -Parameters, die zweite Methode heißt: Domainmodel, Domänenmodell. Erstellen Sie eine neue Klasse zum Speichern von Attributen.
Eine andere Methode wird nachstehend beschrieben (modelldelobend, modellgetrieben.
Es ist der zweiten Methode sehr ähnlich, und die anderen sind gleich, außer dass es einen Unterschied zwischen Aktion und Zugriff gibt. Seine Aktion ist wie folgt:
Die Codekopie lautet wie folgt: Paket com.bjsxt.struts2.user.Action;
import com.bjsxt.struts2.user.model.user;
import com.opensymphony.xwork2.actionsupport;
import com.opensymphony.xwork2.modelDiven;
Die Benutzeraktion der öffentlichen Klasse erweitert actionupport implementiert modelldelen <Benetzwerte> {{
private user user = new user ();
public String add () {
System.out.println ("name =" + user.getName ());
System.out.println ("age =" + user.getage ());
Erfolgserfolg;
}
@Override
öffentlicher Benutzer getModel () {
Benutzer zurückgeben;
}
}
Daraus können wir sehen, dass es die modelldurchschnittliche Schnittstelle implementiert und generische Technologie annimmt. Auf diese Weise instanziiert Struts2 ein Objekt nicht automatisch, sodass wir es nur manuell erzeugen können. Es überschreibt die GetModel () -Methode der modelldelenen Schnittstelle, und seine Funktion besteht darin, ein Klassenobjekt zurückzugeben.
Der Zugriff unterscheidet sich von der zweiten (wie in der ersten Methode):
Kopieren Sie den Code -Code wie folgt: Verwenden Sie modelldeliTen, um die Parameter zu empfangen
Es wird nicht die methodische Nennenname verwendet, weshalb es für ein neues Objekt erforderlich ist.
Der grundlegende ideologische Prozess dieser Methode lautet: Zuerst analysiert die Aktion die URL, erhält die Parameter und fährt dann in die Aktion ein. Es wurde festgestellt, dass diese Aktion eine modelldurchschnittliche Schnittstelle implementiert. Zu diesem Zeitpunkt wird die GetModel -Methode der modeldelenen Schnittstelle aufgerufen, um das Klassenobjekt zu erhalten, und dann werden die Methoden dieser Klasse aufgerufen, um die Parameter zu übergeben.
Diese Methode spiegelt die MVC-Idee von Struts2, m --- Modell, v --- Ansicht, C --- Controller wider, aber diese Methode wird selten verwendet, und die zweite Methode, die wir am meisten verwenden, ist die oben genannte.
Das obige ist der gesamte Inhalt der Parameterabgabemethode in Struts2. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.