jueves, 3 de julio de 2008

Viernes 4 Julio

Sitemesh
  • configuración en web.xml, decorators.xml y librerias de etiquetas de sitemesh dentro del layout y de los jsps


Ejercicio a desarrollar con Struts 1
Definición de ejercicio(posibilidad de trabajar en grupo a través de un mismo repositorio en Subversión y que cada integrante vaya resolviendo diferentes partes de la funcionalidad...):
utilizar en eticom-club-struts-basico para resolver las funcionalidades que se listan a continuación tres tipos de peticiones: de tipo jsp, de tipo Struts y de tipo Servlet (MVC) . Es decir nuestro programa responderá peticiones de tipo http://localhost:8080/mipagina.jsp, http://localhost:8080/loquesea.do y http://localhost:8080/MiServlet . Siguiendo siempre el patrón MVC, es decir un controlador creará y llenará el modelo, mientras que una vista(jsp) accederá al módelo (en el caso de que exista o sea necesario) para su representación.
  • Pantalla de envío de mails a la dirección adecuada, con el asunto adecuado y el contenido
  • Pantalla de envío correcto si no han aparecido excepciones en el envío
  • Antes de enviar el mensaje comprobar que el campo destinatario, es decir el mail contiene una "@" y un dominio ".loquesea". En caso de que no sea valido el destinatario presentar los errores en pantalla
  • Pantalla de envío incorrecto en caso de que hayan excepciones en el envío del mensaje (ej:EticomMailException....)

... todavía por definir en el ejercicio (No continuar hasta aviso!) ....
  • Incluir Disco a colección de cliente, validación de que todavía no exista
  • Pantalla de selección de entrada del blog a detallar
  • Pantalla de detalle de la entrada seleccionada
  • ...



... algunas cosas de Struts2 sobre el proyecto eticom-struts2-servlet, disponible en repositorio o siguiendo las primeras instrucciones del foro http://groups.google.com/group/eticom-master-java/web/struts

  • web.xml:3 Filter, 1 ServletContextListener, 1 servlet con mapping y 1 servlet sin mapping pero con load-on-startup, struts ya no responde a *.do
  • xwork2:

    XWork is an command-pattern framework that is used to power Struts 2 as well as other applications. XWork provides an Inversion of Control container, a powerful expression language, data type conversion, validation, and pluggable configuration.

  • dwr: es una librería de código abierto escrita en Java que permite escribir
    aplicaciones web con Ajax. Manual en español
    DWR esta formado por dos partes:
    • Un Servlet corriendo en el servidor que procesa las peticiones y envía las
    respuestas de retorno al navegador.
    • JavaScript corriendo en el navegador que envía peticiones y puede actualizar
    dinámicamente el contenido de las páginas.
  • carga de struts.xml como archivo de configuración de struts y lo situamos en src/main/resources y desde el web.xml se cargan dichos archivos "de otra forma"...
  • struts procesará todas las peticiones *.action, y esta configuración se indica en el archivo src/main/resources/struts.properties en la propiedad struts.action.extension=action
  • IoC o ID a través de Spring o XWork
  • struts.xml las acciones y sus configuraciones se aplican a paquetes...
  • Las Acciones heredan de com.opensymphony.xwork2.ActionSupport
  • Uso de anotaciones en las acciones para definir la validación y la conversión de valores
  • Uso de metodos getter/setter para acceso desde el jsp a los valores correspondientes de la Accion


... otras muchas cosas de Struts2 sobre el proyecto eticom-appfuse-struts2-servlet, disponible en repositorio o siguiendo las segundas instrucciones del foro http://groups.google.com/group/eticom-master-java/web/struts

  • en el archivo web.xml: context-params relacionados con i18n y la configuración del contexto, y filtros...
  • Utiliza Hibernate en la persistencia
  • DBUnit para resetear la base de datos. Base de datos controlada al iniciar la aplicación utilizando la herramienta DBUnit "hija" de JUnit
  • más info en : http://appfuse.org/display/APF/Using+Struts+2

¿Waffle? otro FrameWork de desarrollo J2EE que sigue el patrón MVC...