Ejercicios de Struts 2
En las plantillas de la sesión se incluye un proyecto de tipo "hola mundo" hecho con Struts 2. Para probarlo, ejecutar el proyecto y acceder a la url http://localhost:8080/testStruts2/hola.action. . El funcionamiento es como sigue:
- La URL está asociada a la clase es.ua.jtech.struts2.acciones.HolaMundo, a través del struts.xml de la carpeta resources (atributos "name" y "class")
- La acción se ejecuta y devuelve un resultado "success", que de nuevo en el struts.xml está asociado a la página hola.jsp
- En dicha página, con la tag property de Struts 2 se muestra una propiedad de un bean. En este caso la propia acción se trata como un bean. Para acceder a la propiedad mensaje se llama al getter de la acción (la expresión OGNL busca en la acción, entre otros sitios).
Implementación de un caso de uso sencillo
Supongamos que queremos implementar una página web desde la que se pueden mandar SMS gratuitos. Vamos a implementar parte de la funcionalidad (evidentemente, no el envío real de mensajes).
Creación y mapeo de la acción (1 punto)
Crear la acción que se ocuparía del envío de mensajes en la clase java es.ua.jtech.struts2.acciones.EnviarSMS. Por el momento, la acción no hace nada salvo devolver "success". Conseguir que la acción se asocie con la URL http://localhost:8080/testStruts2/EnviarSMS.action y que el resultado "success" se asocie con la página "enviado.html" que simplemente mostrará un mensaje indicando "el sms se ha enviado correctamente".
Comprobar que todo funciona adecuadamente.
Uso de javabeans (1 punto)
- Crear un javabean es.ua.jtech.struts2.beans.SMS para almacenar los datos de un SMS: número de teléfono y texto.
- En la acción EnviarSMS, crear un campo de tipo SMS llamado sms con métodos get/set. En el execute de la acción hacer que por la consola se muestre texto con los datos del mensaje, algo como "Enviando al nº 626123456 el texto 'Struts2 mola'".
- Crear una página index.jsp y en ella implementar un formulario para enviar un nuevo SMS con las tags propias de Struts2. Asociar los campos con las propiedades del bean sms de la acción EnviarSMS.
Comprobar que al rellenar el formulario y enviarlo, la acción imprime correctamente los datos del SMS en la consola.
Validación (1 punto)
Hacer que se validen los datos del formulario. Los dos campos son obligatorios. Podéis también validar que el número de teléfono solo tiene dígitos, pero entonces necesitaréis consultar la documentación sobre validación de Struts 2 para ver la definición de los validadores.
Necesitaréis:
- Definir la validación en un fichero EnviarSMS-validation.xml junto a la clase EnviarSMS.
- En el struts.xml, asociar el resultado de "input" a la página que contiene el formulario, para que si falla la validación se vuelvan a mostrar los datos