Manual de Struts 2, pasos básicos de configuración del entorno de trabajo Netbeans
Hoy os he preparado un sencillo manual para configurar Struts 2 en Netbeans sin utilizar ningún plugin de terceros de Struts.
Descarga de Struts 2 y Preparación del Entorno de Trabajo
Para la realización de este manual, parto de la base de que ya tenemos instalado nuestro IDE de trabajo Netbeans, por lo que ya tendremos instalado el JDK de Sun -uff o de Oracle mejor dicho- ( por ejemplo la versión JAVA SE 6 Update 22).
A partir de aquí, lo primero que tendremos que hacer es descargarnos “Struts 2“. Yo os aconsejo descargaros la versión completa, con todas las fuentes y librerias (“Full Distribution“), y extraer el paquete en un directorio. Sin duda también podéis descargaros la versión con los fuentes imprescindibles (“Essential Dependencies Only“) y después ir descargando los paquetes necesarios según los vayais necesitando.
Una vez descargado Struts 2, ejecutaremos Netbeans y crearemos un nuevo Proyecto de tipo “Aplicación Web“. Si no nos aparece el tipo de proyecto “Aplicación Web”, lo más probable es porque no tengamos instalado el plugin “Java Web Applications“. Desde “Tools” –> “Plugins“, podremos instalarlo sin problemas.
Crearemos por tanto un proyecto nuevo al que llamaremos “HolaMundoaStruts2”.
No selecciones ningún tipo de Framework para añadir al proyecto.
Configuración de Struts 2
El siguiente paso será añadir las librerías de Struts 2 al proyecto de Aplicaciones Web que estamos creando y configurar el fichero web.xml
Para ello tendremos que expandir la extructura del proyecto en el Panel del Proyecto, realizar click con el botón derecho sobre la carpeta “Libraries” y seleccionar el menú contextual “Add JAR/Folder“.
En el cuadro de diálogo que nos aparecerá, exploraremos el directorio donde descomprimimos Struts 2, y nos dirigiremos al directorio “lib“. Aquí tendremos que seleccionar todos los ficheros JAR que deseemos incluir en nuestro proyecto. En principio las siguientes librerías JAR son las indispensables para cualquier proyecto Struts 2 (posteriormente siempre podremos añadir más):
- commons-logging
- ognl
- struts2-core
- xwork
- freemarker
- javassist
Mi consejo es que incluyais todas las librerias commons en la aplicación, nos ahorraremos bastantes problemas! 🙂
La carpeta “Libraries” de tu Netbeans debería quedar así:
Ahora tendremos que configurar el fichero web.xml de la carpeta WEB-INF, el cual podemos sustituir por el siguiente código:
<?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/web-app_2_5.xsd"> <display-name>HolaMundoStruts2</display-name> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> |
Lo que estamos indicandole a nuestro contenedor de Servlets, en mi caso Tomcat, es que cualquier petición, sea atendida por el filtro “FilterDispatcher” (“el controlador” del patron MVC) el cual será el controlador de todo el dominio de nuestra Aplicación Web. Y aquí terminó la configuración del controlador, ahora nos toca ocuparnos de la vista y del modelo de nuestra aplicación (resultados y acciones según Struts 2).
Creación de una clase Action (modelo)
El siguiente paso en la creación de nuestra aplicación es crear una acción. Las acciones en Struts son clases simples de Java (POJOS) que pueden extender de la clase ActionSupport y que se encargan de llevar a cabo la lógica de negocio. Para la creación de la acción “AccionHola” haremos click con el botón derecho sobre la carpeta “Source Packages“, seleccionaremos “New” y después “Java Class“. Introduciremos el nombre de nuestra clase Java “AccionHola” y pulsaremos sobre “Finish” para terminar su creación.
import com.opensymphony.xwork2.ActionSupport; public class AccionHola extends ActionSupport { private String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } @Override public String execute() { System.out.println(nombre); return SUCCESS; } } |
Ahora necesitaremos indicarle a Struts la existencia de dicho Action, e indicarle cómo mapear las páginas de resultado. Para ello necesitaremos crear un nuevo fichero denominado “struts.xml” que deberemos crear dentro de nuestro classpath, por ejemplo dentro de la carpeta WEB-INF/classes.
Iremos a la carpeta “Source Packages” y con el botón derecho del ratón seleccionaremos las siguientes opciones: “New“–> “Other” –>”XML” –>”XML Document“. Una vez creado, editamos su contenido con el siguiente código:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="paquete" extends="struts-default"> <action name="Hola" class="AccionHola"> <result name="success">/saludahola.jsp</result> </action> </package> </struts> |
Después de editar el fichero “struts.xml” o cualquier otro documento XML os aconsejo que paséis el validador y el chequeador de XML del propio Netbeans (Alt+F9 o Alt+Mayúsculas+F9). Os evitareis errores tan tontos como “There is no Action mapped for action name xxxx” debido a que el fichero xml no está bien construido.
Creación del fichero index.jsp y de una página JSP de resultado
index.jsp:
<%@ taglib uri="/struts-tags" prefix="s" %> <html> <body> <s:form action="Hola" > <s:textfield name="nombre" label="Nombre"/> <s:submit/> </s:form> </body> </html> |
saludahola.jsp:
<%@ taglib uri="/struts-tags" prefix="s" %> <html> <body> Hola <s:property value="nombre"/> </body> </html> |
Nuestro entorno de trabajo quedará de la siguiente forma:
Para ejecutar nuestra primera aplicación deberemos acceder a la siguiente URL:
http://localhost:8080/index.jsp
Cuando introduzcamos nuestro nombre, la página index.jsp nos redireccionará a la siguiente URL:
http://localhost:8080/Hola.action
Si al realizar el deploy de la aplicación, netbeans te pide un fichero context.xml, aquí os dejo el mío, el cual podéis configurar a vuestro parecer:
<?xml version="1.0" encoding="UTF-8"?> <Context antiJARLocking="true" path=""/> |
no me sale hago todos los pasos que me dicen en el ejercicio pero no sale podria alguien ayudarme de urgencia sip gracias este es el error q me sale –>
Undeploying …
undeploy?path=/HolaMundoaStruts2
OK – Replegada aplicación en trayectoria de contexto /HolaMundoaStruts2
In-place deployment at C:\Users\oxrl\Documents\NetBeansProjects\HolaMundoaStruts2\build\web
deploy?config=file%3A%2FC%3A%2FUsers%2Foxrl%2FAppData%2FLocal%2FTemp%2Fcontext2529827775334901372.xml&path=/HolaMundoaStruts2
FAIL – Deployed application at context path /HolaMundoaStruts2 but context failed to start
C:\Users\oxrl\Documents\NetBeansProjects\HolaMundoaStruts2\nbproject\build-impl.xml:696: The module has not been deployed.
BUILD FAILED (total time: 4 seconds)
Me ocurre el mismo error !!! Con otra aplicacion !!! De repente empieza a ocurrir !!! Que jodidos pasa????????
Excelente me funciono, pero como dices para ello tube que importar todos los commons, porque solo con los jar q decias si me salia error, vale muy bueno!.
Igual que Erick, muchas gracias!
Excelente!!.. Gracias..:)