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 <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) –>
<!– Standard Action 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» |
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.
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