Algunas personas pueden pensar que struts no es fácil de aprender. Parece que algunos conceptos que contiene confunden a las personas que nunca han estado expuestas a él. MVC1, MVC2, patrones... Escribí este artículo para que las personas que nunca han estado expuestas. Los struts tienen una introducción simple. Por supuesto, es necesaria una guía para estudiar los struts sistemáticamente. Hay muchas cosas fascinantes en él, pero esa es una historia para otro día.
Este caso incluye la página de inicio, el inicio de sesión del usuario y las páginas del asistente del sitio web. Es así de simple. No existe un concepto profundo de Struts. Se basa principalmente en la experiencia práctica y la comprensión del corazón.
El servidor WEB utiliza tomcat4. Vaya a http://jakarta.apache.org para descargar struts1.1, libere el archivo zip en c:struts, copie C:strutswebappsstruts-example.war en c:tomcat4webapps y comience tomcat.El paquete war se publica en la carpeta struts-example, elimine el paquete war y cambie el nombre de la carpeta struts-example para probar.
1. Cambie WEB-INFweb.xml a:
<?xml version="1.0" encoding="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 -aplicación>
<!: este es el controlador en struts. La clase ActionServlet es responsable de la transferencia de comandos del sistema. Lee la información de configuración de struts-config.xml e inicia automáticamente un hilo en el fondo del servidor. Si no hay requisitos especiales (como agregar funciones de edición de idioma), los programadores pueden ignorar esta parte y simplemente usarla. -->
<servlet>
<nombre-servlet>acción</nombre-servlet>
<servlet-clase>org.apache.struts.action.ActionServlet</servlet-clase>
<parámetro-inicio>
<nombre-param>config</nombre-param>
<valor-param>/WEB-INF/struts-config.xml</valor-param>
</init-param>
<carga-al-inicio>1</carga-al-inicio>
</servlet>
<!--El servlet de este sistema se puede asignar a un archivo con el sufijo cool, en lugar del común .jspdo, etc. El nombre del sufijo se puede cambiar a cualquier nombre, por supuesto, el nombre debe estar en buen estado #◎¥% ! -->
<mapeo-servlet>
<nombre-servlet>acción</nombre-servlet>
<url-pattern>*.cool</url-pattern>
</servlet-mapping>
<!--La página de inicio predeterminada de este sistema es index.jsp, puede haber varias, el sistema las encontrará en orden, similar a IIS-->
<lista-de-archivos-de-bienvenida>
<archivo-de-bienvenida>index.jsp</archivo-de-bienvenida>
</lista-de-archivos-de-bienvenida>
</web-app>
2. Cambie testWEB-INF struts-config.xml a:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//ES"
" http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd ">
<struts-config>
<!--FormBean es un concepto de struts. Es esencialmente un JavaBean. Se utiliza para almacenar automáticamente los valores de cada campo en el formulario de la página y completar los campos del formulario en el momento adecuado. a request.getParameter ("fieldName") como el tradicional, usado a menudo por acciones en mapeos de acciones -->;
<forma-frijoles>
<!—Agregaremos una clase UserForm más adelante para almacenar información del usuario. -->
<form-bean nombre="userForm" tipo="test.UserForm"/>
</form-beans>
<!--Esto almacena la dirección de reenvío global que puede ser utilizada por todo el sistema, similar a window.location('index.jsp'); y también similar a varios botones en el controlador de TV. Cambio de canal, color. ajuste, etc. son el flujo de control de las aplicaciones web basadas en Struts. En circunstancias normales, una vez procesada una acción, se reenviará a una página JSP para su visualización. Este es también el punto clave de la implementación de MVC en JSP. -->
<reenviados-globales>
<!--failed.cool se tratará como una solicitud de servlet y el procesamiento de acción correspondiente se encontrará en action-mappings. -->
<forward name="error" ruta="/failed.cool"/>
<forward nombre="regist" ruta="/regist.jsp"/>
</global-forwards>
<!--¿Recuerda la solicitud con el sufijo cool en web.xml? Se manejan aquí. Esto es equivalente a la parte del modelo de los puntales. La parte del modelo es un lugar más flexible en los puntales. -->
<asignaciones-de-acciones>
<!--Para procesar la solicitud de Register.cools, el FormBean utilizado es userForm, que es la clase test.UserForm Cuando ocurre un error durante el procesamiento, se devolverá index.jsp-->.
<acción ruta="/regist" tipo="test.RegistAction" nombre="userForm" alcance="request" input="/index.jsp" />
<ruta de acción="/overview" forward="/hola.jsp"/>
<ruta de acción="/failed" forward="/wuwu.jsp" />
</asignaciones-de-acciones>
</struts-config>
3. Agregue un FormBean con la ruta de clase test.UserForm. El siguiente es el contenido de esta clase:
paquete test;
importar org.apache.struts.action.ActionForm;
La clase pública UserForm extiende ActionForm
{
private String name="lpw";//Nombre de usuario private String ps="1111";//Contraseña public UserForm(){}
setName público vacío (String s) {nombre=s;}
cadena pública getName() {devolver nombre;}
conjuntos de vacío público (cadena s) {ps = s;}
cadena pública getPs() {return ps;}
}
4. Agregue una subclase de Acción, la ruta de clase es RegistAction, el siguiente es el contenido de esta clase:
paquete de prueba;
importar java.lang.reflect.InvocationTargetException;
importar java.util.Locale;
importar javax.servlet.ServletException;
importar javax.servlet.http.HttpServletRequest;
importar javax.servlet.http.HttpSession;
importar javax.servlet.http.HttpServletResponse;
importar org.apache.struts.action.Action;
importar org.apache.struts.action.ActionError;
importar org.apache.struts.action.ActionErrors;
importar org.apache.struts.action.ActionForm;
importar org.apache.struts.action.ActionForward;
importar org.apache.struts.action.ActionMapping;
importar org.apache.struts.util.MessageResources;
importar prueba.UserForm;
la clase final pública RegistAction extiende la acción
{
ejecución pública de ActionForward (mapeo de ActionMapping, formulario ActionForm, solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza excepción
{
Configuración regional = getLocale(solicitud);
Mensajes MessageResources = getResources(solicitud);
Sesión HttpSession = request.getSession();
Formulario de usuario formulario de usuario = formulario (UserForm);
//Aquí puede llamar a otras clases para realizar escritura en la base de datos u otros juicios lógicos //Si el valor del nombre del parámetro pasado por UserForm es el lpw predeterminado, se reenviará a error.
// Se buscará en este nombre la dirección URL asignada en <global-forwards> de struts-config.xml // (puede ser una ruta absoluta o relativa. Para este ejemplo, va a fallen.cool).
//¿Recordar? Todas las solicitudes con el sufijo "cool" van a action-mappings para encontrar // el procesamiento de acción correspondiente. El directorio final es wuwu.jsp*/.
if( "lpw".equals(userform.getName()) )
return (mapping.findForward ("falló"));
demás
return (mapping.findForward("registro"));
}
}
5. Todas las siguientes páginas nuevas o modificadas son equivalentes a la parte Ver de struts. Cambie la página de inicio index.jsp a:
<%@ page contentType="text/html;charset=GBK" language="java" %>.
<%@ importación de página = "prueba.*" %>
<a href="overview.cool">Navegación del sitio</a><br>
<formulario acción="regist.cool" método="publicación">
<!—El nombre del campo en el formulario debe ser el mismo que el parámetro en el UserForm, para que los datos se puedan obtener automáticamente sin usar request.getParameter("param");-->
Usuario:<tipo de entrada="texto" nombre="nombre"><br>
Contraseña:<tipo de entrada="contraseña" nombre="ps"><br>
<tipo de entrada=valor de envío="Agregar usuario">
</form>
6. Agregue hello.jsp para la navegación del sitio:
<h1>mapa del sitio</h1>El siguiente es el contenido que completa el lector
. 7. Agregue wuwu.jsp Cuando ningún usuario nuevo inicie sesión, será redirigido a este. Página:
<%@ página contentType="text/html;charset=GBK" language="java" %>
<jsp:useBean id="beanlpw" class="test.UserForm" alcance="sesión"/>
Usuarios existentes: <%=beanlpw.getName()%><br>
Contraseña: <%=beanlpw.getPs()%><br>
¡No se obtuvo ningún nuevo usuario!
8. Agregue Register.jsp Cuando un nuevo usuario inicie sesión, será redirigido a esta página:
<%@ page contentType="text/html;charset=GBK" language="java" %>.
<jsp:useBean id="beanlpw" class="test.UserForm" alcance="sesión"/>
Nueva cuenta de usuario: <%=beanlpw.getName()%><br>
Contraseña: <%=beanlpw.getPs()%>
9. Inicie Tomcat4, escriba http://localhost:8080/test/index.jsp en el navegador, opere, podrá ver los resultados e inicialmente comprenderá la M de Las partes struts, V y C funcionan juntas. Por supuesto, esta es la buena intención del autor. Si los lectores están confundidos, señale el error :)