Einige Leute denken vielleicht, dass Struts nicht einfach zu erlernen sind. Es scheint, dass einige Konzepte darin Menschen verwirren, die noch nie mit MVC1, MVC2 und Mustern in Berührung gekommen sind Es gibt natürlich eine einfache Anleitung, um die Streben systematisch zu studieren. Es gibt viele faszinierende Dinge darin, aber das ist eine andere Geschichte.
Dieser Fall umfasst die Startseite, die Benutzeranmeldung und die Seiten des Website-Assistenten. So einfach ist das. Es gibt kein tiefgreifendes Konzept von Struts. Es beruht hauptsächlich auf praktischer Erfahrung und Verständnis mit Herz.
Der WEB-Server verwendet Tomcat4. Gehen Sie zu http://jakarta.apache.org , um struts1.1 herunterzuladen, geben Sie die ZIP-Datei nach c:struts frei, kopieren Sie C:strutswebappsstruts-example.war nach c:tomcat4webapps und starten Sie tomcat. Das Kriegspaket wird im Ordner „struts-example“ veröffentlicht. Löschen Sie das Kriegspaket und benennen Sie den Ordner „struts-example“ um, um es zu testen.
1. Ändern Sie WEB-INFweb.xml in:
<?xml version="1.0" binding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" " http://java.sun.com/j2ee/dtds/web-app_2_2.dtd ">
<web -app>
<! – Dies ist der Controller in Struts. Die ActionServlet-Klasse ist für die Befehlsübertragung des Systems verantwortlich. Sie liest Konfigurationsinformationen aus struts-config.xml und startet automatisch einen Thread im Serverhintergrund. Wenn keine besonderen Anforderungen bestehen (z. B. das Hinzufügen von Sprachbearbeitungsfunktionen), können Programmierer diesen Teil ignorieren und ihn einfach verwenden. ->
<Servlet>
<servlet-name>Aktion</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--Das Servlet dieses Systems kann einer Datei mit dem Suffix cool anstelle der üblichen .jspdo usw. zugeordnet werden. Der Suffixname kann in einen beliebigen Namen geändert werden, natürlich muss der Name fehlerfrei sein #◎¥% ! ->
<Servlet-Mapping>
<servlet-name>Aktion</servlet-name>
<url-pattern>*.cool</url-pattern>
</servlet-mapping>
<!--Die Standard-Homepage dieses Systems ist index.jsp. Es können mehrere vorhanden sein. Das System findet sie der Reihe nach, ähnlich wie bei IIS-->
<Willkommensdateiliste>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2. Ändern Sie testWEB-INF struts-config.xml in:
<?xml version="1.0" binding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
" http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd ">
<struts-config>
<!--FormBean ist ein Struts-Konzept. Es wird verwendet, um die Werte jedes Felds im Seitenformular automatisch zu speichern. Es besteht keine Notwendigkeit zu request.getParameter ("fieldName") wie das traditionelle;, das häufig von Aktionen in Aktionszuordnungen verwendet wird -->
<form-beans>
<! – Wir werden später eine UserForm-Klasse hinzufügen, um Benutzerinformationen zu speichern. ->
<form-bean name="userForm" type="test.UserForm"/>
</form-beans>
<!--Hier wird die globale Weiterleitungsadresse gespeichert, die vom gesamten System verwendet werden kann, ähnlich wie window.location('index.jsp'); in JavaScript und auch ähnlich wie verschiedene Schaltflächen auf dem TV-Controller Anpassung usw. sind der Kontrollfluss von Webanwendungen, die auf Struts basieren. Unter normalen Umständen wird eine Aktion nach der Verarbeitung zur Anzeige an eine JSP-Seite weitergeleitet. Dies ist auch der entscheidende Punkt bei der Implementierung von MVC in JSP. ->
<global-forwards>
<!--failed.cool wird als Servlet-Anfrage behandelt und die entsprechende Aktionsverarbeitung wird in Aktionszuordnungen gefunden. ->
<forward name="failed" path="/failed.cool"/>
<forward name="regist" path="/regist.jsp"/>
</global-forwards>
<!--Erinnern Sie sich an die Anfrage mit dem Suffix cool in web.xml? Sie werden hier behandelt. Dies entspricht dem Modellteil von Struts. Der Modellteil ist eine flexiblere Stelle in Struts. ->
<Aktionszuordnungen>
<!--Um die Anforderung von register.cools zu verarbeiten, wird als FormBean userForm verwendet, bei dem es sich um die test.UserForm-Klasse handelt. Wenn während der Verarbeitung ein Fehler auftritt, wird index.jsp zurückgegeben
<action path="/regist" type="test.RegistAction" name="userForm" Scope="request" input="/index.jsp" />
<action path="/overview" forward="/hello.jsp"/>
<action path="/failed" forward="/wuwu.jsp" />
</action-mappings>
</struts-config>
3. Fügen Sie ein FormBean mit dem Klassenpfad test.UserForm hinzu. Das Folgende ist der Inhalt dieser Klasse:
Pakettest;
import org.apache.struts.action.ActionForm;
Die öffentliche Klasse UserForm erweitert ActionForm
{
private String name="lpw";//Benutzername private String ps="1111";//Passwort public UserForm(){}
public void setName(String s) {name=s;}
öffentlicher String getName() {Rückgabename;}
public void setPs(String s) {ps=s;}
öffentlicher String getPs() {return ps;}
}
4. Fügen Sie eine Unterklasse von Action hinzu. Der Klassenpfad lautet RegistAction. Der Inhalt dieser Klasse lautet:
Pakettest;
import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;
test.UserForm importieren;
Die öffentliche Abschlussklasse RegistAction erweitert Action
{
öffentliche ActionForward-Ausführung (ActionMapping-Zuordnung, ActionForm-Formular, HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
throwsException
{
Gebietsschema locale = getLocale(request);
MessageResources messages = getResources(request);
HttpSession session = request.getSession();
UserForm userform = (UserForm) form;
// Hier können Sie andere Klassen aufrufen, um Datenbankschreibvorgänge oder andere logische Beurteilungen durchzuführen. // Wenn der Wert des von UserForm übergebenen Parameternamens der Standard-LPW ist, wird die Weiterleitung an fehlgeschlagen weitergeleitet.
// Dieser Name wird nach der zugeordneten URL-Adresse in <global-forwards> von struts-config.xml gesucht // (es kann ein absoluter Pfad oder ein relativer Pfad sein). In diesem Beispiel geht er zu failed.cool.
//Erinnern? Alle Anfragen mit dem Suffix „cool“ gehen zu action-mappings, um // die entsprechende Aktionsverarbeitung zu finden. Das letzte Verzeichnis ist wuwu.jsp*/.
if( "lpw".equals(userform.getName()) )
return (mapping.findForward("failed"));
anders
return (mapping.findForward("regist"));
}
}
5. Alle folgenden neuen oder geänderten Seiten entsprechen dem View-Teil von Struts. Ändern Sie die Homepage index.jsp in:
<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ page import = "test.*" %>
<a href="overview.cool">Site-Navigation</a><br>
<form action="regist.cool" method="post">
<! – Der Name des Felds im Formular muss mit dem Parameter in der UserForm identisch sein, damit die Daten automatisch abgerufen werden können, ohne request.getParameter("param");--> zu verwenden
Benutzer:<input type="text" name="name"><br>
Passwort:<input type="password" name="ps"><br>
<input type=submit value="Benutzer hinzufügen">
</form>
6. Fügen Sie hello.jsp für die Site-Navigation hinzu:
<h1>Sitemap</h1>Der folgende Inhalt wird vom Leser ausgefüllt
. 7. Fügen Sie wuwu.jsp hinzu. Wenn sich kein neuer Benutzer anmeldet, wird er dorthin weitergeleitet Seite:
<%@ page contentType="text/html;charset=GBK" language="java" %>
<jsp:useBean id="beanlpw" class="test.UserForm" Scope="session"/>
Bestehende Benutzer: <%=beanlpw.getName()%><br>
Passwort: <%=beanlpw.getPs()%><br>
Es wurde kein neuer Benutzer gewonnen!
8. Fügen Sie register.jsp hinzu. Wenn sich ein neuer Benutzer anmeldet, wird er zu dieser Seite weitergeleitet:
<%@ page contentType="text/html;charset=GBK" language="java" %>
<jsp:useBean id="beanlpw" class="test.UserForm" Scope="session"/>
Neues Benutzerkonto: <%=beanlpw.getName()%><br>
Passwort: <%=beanlpw.getPs()%>
9. Starten Sie Tomcat4, geben Sie http://localhost:8080/test/index.jsp in den Browser ein, bedienen Sie ihn, Sie können die Ergebnisse sehen und zunächst das M von verstehen Struts-, V- und C-Teile arbeiten zusammen. Dies ist natürlich die gute Absicht des Autors. Wenn die Leser verwirrt sind, weisen Sie sie bitte auf den Fehler hin :)