Wenn ich lernte, grundlegende Anwendung mit Struts zu schreiben, stieß ich auf den folgenden Code, der gut funktioniert.Wie funktioniert das Ganze?
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>action</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>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
index.jsp
jsp:forward page="HelloWorld.do"/>
Verstrebungen-config.xml
<struts-config>
<form-beans>
<form-bean name="HelloWorldActionForm"
type = "com.vaannila.HelloWorldActionForm" />
<action-mappings>
<action input="/index.jsp" name="HelloWorldActionForm" path="/HelloWorld" scope="session" type="com.vaannila.HelloWorldAction">
<forward name="success" path="/helloWorld.jsp" />
</action>
</action-mappings>
HelloWorldActionForm
public class HelloWorldActionForm extends
org.apache.struts.action.ActionForm {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String Message) {
message = Message;
}
}
HelloWorldAction.java
helloWorld.jsp
Hey ! It's me from struts.
Die Anwendung funktioniert gut. Aber ich verstehe nicht, wie die Anfrage HelloWorld.do
endlich helloWorld.jsp
erreichen kann, nachdem ich index.jsp
geöffnet hatte? Ich verstehe die Sache, dass HelloWorldAction
tatsächlich die Seite zurückgibt.
So geht der Ablauf: Wenn Sie auf index.jsp zugreifen, wird die Anfrage an H weitergeleitet elloWorld.do (Verweis jsp: vorwärts). Der App-Server, der das .do-Muster sieht, übergibt die Anfrage an ActionServlet (siehe: web.xml). Jetzt wurde das ActionServlet mit der Datei struts-config.xml konfiguriert. In der Konfigurationsdatei ist eine Aktion für/HelloWorld definiert. Daher wird die Anfrage von HelloWorldAction verarbeitet und gibt den 'Erfolg'-Code zurück, der HelloWorld.jsp zugeordnet ist (siehe auch struts-config.xml). Dies ist die' Ansicht ', die vom ActionServlet-Controller zurückgegeben wird. Ich hoffe, das hilft. – ben
Sie sollten dies als eine Antwort niedergelegt haben :) –
http://struts.apache.org/2.0.6/docs/the-struts-2-request-flow.html – ben