Struts Jakarta

1
110530

Setup de Struts

Cuando afrontamos una aplicación seria, no surgen ciertas problematicas que,
de un modo y otro vamos resolviendo en nuestras aplicaciones:

  • Separar la lógica de negocio de la de presentación
  • Controlar el flujo de navegación
  • Normalizar las acciones que procesa nuestro sistema

Uno de los proyectos de jakarta intenta normalizar el modo de resolver estos
problemas comunes.

Aquí os vamos a mostrar como instalar y desarrollar un ejemplo simple en base a este Framework. 

 

Lo primero que hacemos es descargarnos el paquete de struts de http://jakarta.apache.org

Además del paquete existen tutoriales, herramientas auxiliares, faq´s ….

Lo primero que hacemos es fijarnos en los requerimientos del sistema …..
nosotros lo vamos a montar sobre Tomcat … y vamos a aprovechar las capacidades
que tiene este para desplegar aplicaciones automáticamente.

Ahora vamos a crear una nueva WebApp en la que vamos a hacer todas las
modificaciones para soportar Struts

Preparación manual de la WebApp

Debemos crear un fichero web.xml

El contenido de este fichero puede ser 

<?xml version=»1.0″ encoding=»ISO-8859-1″?>

<!DOCTYPE web-app
PUBLIC «-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN»
«http://java.sun.com/dtd/web-app_2_3.dtd»>

<web-app>
<!– Establish the default list of welcome files –>
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>index.html</welcome-file>
      <welcome-file>index.htm</welcome-file>
   </welcome-file-list>
</web-app>

Tenemos que modificar el fichero server.xml para incluir la nueva WebApp

Añadimos el siguiente fragmento ….

<Context path=»/roberto» docBase=»roberto» debug=»0″ reloadable=»true» crossContext=»true»>
         <Logger className=»org.apache.catalina.logger.FileLogger» prefix=»localhost_roberto_log.» suffix=».txt»
timestamp=»true»/>
</Context> 

Creamos una página html básica y … ya tenemos la nueva WebApp

Ahora ya podemos empezar a añadir los componentes de Struts

Descomprimimos el fichero y debemos copiar struts.jar en el fichero
de librerias de Tomcat

 

Tambien debemos crear un fichero struts-config.xml (que
podemos copiar de un ejemplo) y modificar el fichero web.xml para
añadir las tag-libs de struts

<taglib>
  <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>

<taglib>
  <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

<taglib>
  <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

<taglib>
  <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>

Y para configurar el servlet que procesa y dispacha las peticiones

<!– Standard Action Servlet Configuration (with debugging) –>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<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>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

<!– Standard Action Servlet Mapping –>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

 

 

Bueno, tambien podemos aprovechar los ejemplos y de un solo paso .. que
lo haga automáticamente usando los ficheros war de ejemplo que proporciona
Struts:

Preparación automática de la WebApp

Copiamos el fichero struts-blank directamente en nuestro directorio
webapps ... y Tomcat lo despliega por nosotros.

Si abrimos este fichero con WinZip, vemos que tiene lo mismo que nosotros
hemos copiado a mano

Al re-arrancar Tomcat … vemos que despliega automáticamente todos los
ficheros

Y podemos ver la estructura de carpetas

Asi que podemos probar

Y como vemos (aunque en ingles) nos dice que para nuestras
aplicaciones, simplemente cambiemos en nombre del fichero War

Ahora que tenemos el entorno, vamos a ver que es lo que podemos
hacer … en este caso …. vamos a definir una acción o verbo que va a
ejecutar la lógica de mi negocio y va a delegar sobre un JSP para presentar la
información….

Creamos nuestra primera acción

Nuestra primera acción

Escribimos el código de nuestra primera classe

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.util.*;


public final class accionBasica extends Action
{
    public ActionForward perform(ActionMapping mapping,
				 ActionForm form,
				 HttpServletRequest request,
				 HttpServletResponse response)
	throws IOException, ServletException
    {
	request.setAttribute("usuario","Ejemplo");

	// Forward control to the specified success URI
	return (mapping.findForward("home"));
    }
}

    

 

Indicamos al sistema en el fichero struts-config.xml como
mapear las peticiones a esta acción 

<action-mappings>

     <action path=»/accionBasica»
type=»accionBasica«>
          <forward name=»home» path=»/homeStruts.jsp»/>
     </action>

Creamos nuestro primer JSP …..

E invocamos el verbo

http://localhost:8080/struts-blank/accionBasica.do

Y ya tenemos la primera aplicación básica con Structs

Bueno …. ya iremos viendo más cosas .. porque ya tenemos el entorno
funcionando.

 

Sobre el
Autor ..

1 COMENTARIO

  1. buenas, tengo una inquitud sera que se pueden utilizar recargas de paginas con ajax utilizando struct, pero que estas paginas no tenga la necesidad de crear otro formulario. gracias por su pronta respuesta

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad