Ejercicios de Introducción a MVC y Struts
La aplicación AmigosStruts
La aplicación AmigosStruts,que se incluye en las plantillas de la sesión, es una aplicación MVC con Struts parcialmente implementada y que servirá como base para hacer los ejercicios de las dos primeras sesiones. En esta aplicación los usuarios tienen una página personal en la que figuran sus datos, gustos, aficiones, etc. y pueden buscar otros usuarios con intereses comunes. Además pueden mandarse mensajes entre sí.
Los casos de uso de la aplicación son:
- Hacer login en el sistema
- Registrarse como nuevo usuario
- Buscar usuarios especificando una serie de condiciones
- Ver la página personal de un usuario
- Mensajes entre usuarios:
- Enviar un mensaje a otro usuario
- Ver la lista de correo recibido
- Ver la lista de correo enviado
- Leer un mensaje
Asociar una acción a una petición HTTP
Cuando se pincha sobre el login de un usuario se debe ir a su página personal. La clase que implementa dicha acción (amigosStruts.acciones.AccionVerUsuario) ya está implementada pero no está asociada a ninguna URL. Asociar dicha acción a la URL verUsuario.do y ponerle dos "forward": uno llamado "OK" asociado a la página "usuario.jsp" y otro llamado "error" asociado a la página "noexiste.jsp"
Implementar el caso de uso "Buscar usuarios"
Añadir a la aplicación el caso de uso "Buscar usuarios". Esto implica
-
Crear una acción:La clase que implemente dicha acción debe ser amigosStruts.acciones.AccionBusqueda. Dicha clase debe
- Obtener la localidad, edad mínima, máxima y sexo deseados de los parámetros HTTP "localidad", "edadMin", "edadMax" y "sexo" respectivamente. Los tres últimos son enteros, donde sexo=0 quiere decir mujer, 1 hombre y 2 ambos.
- Obtener una nueva instancia de la clase FachadaAmigosStruts llamando al método estático FachadaAmigosStruts.getInstance()
- Llamar al método "buscar" del objeto así obtenido pasándole como parámetros la localidad, edad mínima, máxima y sexo
- El método buscar devolverá una lista de objetos de la clase Usuario. Guardar ésta en el ámbito que se considere más apropiado (request, session, application) para que la vista pueda acceder a los datos.
- Finalmente la acción debe mostrar la vista correspondiente. Esto se hará mediante una llamada a findForward que luego habrá que asociar en el struts-config.xml al nombre real de la página JSP a mostrar.
- Crear la vista a mostrar tras ejecutar la acción:los datos se mostrarán en la propia página busqueda.jsp. Hay que añadir al final de la misma código Java o etiquetas de JSTL para mostrar la lista de usuarios encontrados. (Podéis usar como ejemplo la página correo.jsp, en la que se ve cómo se va iterando por una lista de objetos Mensaje con etiquetas de JSTL)
- Asociar la acción a su URL y su vista de manera similar a como se ha hecho en el primer ejercicio, asociando en este caso la acción a la URL busqueda.do y poniéndole un forward a busqueda.jsp
Tratamiento de errores (*)
Añadir tratamiento de errores al caso de uso "Buscar usuarios". Para simplificar, suponer que el único error a chequear es que la edad mínima siempre debe ser menor o igual a la máxima. Seguir los pasos especificados en los apuntes:
- Crear el mensaje de error en el fichero mensajes.properties, que está en la carpeta del proyecto src
- Declarar una lista de errores en la acción (objeto ActionErrors)
- Si se detecta un error, añadirlo a la lista
- Guardar la lista en la petición HTTP
- Devolver un mapping que indique error. En nuestro caso puede ir a la propia página busqueda.jsp o a otra creada por vosotros.
- En la página a la que salta dicho mapping colocar la etiqueta de Struts que sirve para mostrar los errores.