English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
herramientas en línea 2marco. Spring proporciona un método simple para gestionar las dependencias. Puede integrarse fácilmente con struts
ContextLoaderListener clase para la integración con Struts 2comunicación con la aplicación Spring. Debe especificarse en el archivo web.xml.
Necesita seguir los siguientes pasos:
Crea struts2Añade el archivo jar de spring a la aplicación. en web.xml en el archivo, define la clase ContextLoaderListener. en struts.xml en el archivo, define el nombre del Bean para la clase de acción. en applicationContext.xml en el archivo, crea un Bean. El nombre de la clase debe coincidir con el nombre de la clase de acción, por ejemplo, com.w3codebox.Login y el id deben coincidir con la clase de acción en el archivo struts.xml (por ejemplo, login). en Clase de accióndonde se definen otras propiedades, como los mensajes.
Necesita crear los siguientes archivos para simplificar la integración de spring and struts 2Aplicación:
index.jsp web.xml struts.xml applicationContext.xml Login.java welcome.jsp error.jsp
1)index.jsp
Esta página obtiene el nombre del usuario.
<%@ taglib uri="/struts-tags" prefix="s"> <s:form action="login"> <s:textfield name="userName" label="UserName"></s:textfield> <s:submit></s:submit> </s:form>
2)web.xml
proporciona para struts 2y ContextLoaderListener La clase oyente define la clase controladora, para que en struts2y conecta con la aplicación de spring.
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" 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/mapping>-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> listener-<filter2</pattern>-name>struts listener-listener org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </pattern>-listener </filter> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-listener </class listener-filter listener-<filter2</pattern>-name>struts name-url/*</<url-url </pattern>-filter </mapping>-web
3app>
)struts.xml
<?xml version="1.0" encoding="UTF-8Definición de un paquete que contiene operaciones y resultados. Aquí, el nombre de la clase de acción es login, que se buscará en el archivo applicationContext.xml. " ?>-//!DOCTYPE struts public "//Apache Software Foundation 2.1//DTD Struts Configuration EN"//"http:/struts.apache.org/struts-2.1dtds .dtd"> <struts>-<package name="abc" extends="struts default"> <action name="login" class="login">/<result name="success">welcome.jsp< </result> </action> </package>
4struts>
)applicationContext.xml
Definición de un bean con ID de nombre de inicio de sesión. Este bean corresponde a la clase mypack.Login.-En el directorio INF. Debe estar ubicado en WEB
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:p="http://www.springframework.org/schema/p xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="login" class="mypack.Login"> <property name="message" value="Bienvenido Spring"></property> </bean> </beans>
5)Login.java
Definición de dos propiedades userName y un mensaje con método execute que devuelve éxito.
package mypack; public class Login { private String userName, message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String execute(){ return "success"; } }
6)welcome.jsp
Muestra los valores de las propiedades userName y mensaje.
<%@ taglib uri="/struts-tags" prefix="s"> Bienvenido, <s:property value="userName"/><br/> ${message}
7)error.jsp
Esta es una página de error. Pero esto no es necesario, porque no hemos definido ninguna lógica en el método execute de la clase de acción.
¡Lo siento!
Salida