1. DESCRIPCIN DE LA APLICACIN
Cuando se utiliza Struts, el marco proporciona un servlet controlador, ActionServlet , que se define en las libreras de Struts que se incluyen en el IDE, y que se registra automticamente en el descriptor de despliegue. El servlet controlador utiliza un struts-config.xml archivo de correspondencia de las peticiones entrantes a Struts Action objetos, y crea instancias de los ActionForm objetos asociados a la accin para almacenar temporalmente los datos del formulario. El objeto Action procesa de las solicitudes mediante su mtodo execute, mientras que hace uso de los datos almacenados en el bean del formulario. Una vez que el objeto Action procesa la solicitud, almacena todos los datos nuevos y enva los resultados a la vista apropiada.
3. En el panel Server y Configuracin, seleccione el servidor al que desea implementar la aplicacin. Slo los servidores que estn registrados con el IDE estn en la lista. Clic en Siguiente.
Para fines de esta prctica, no cambiamos ninguno de los valores de configuracin en la regin inferior de este panel. Estos son los siguientes: o Nombre de la accin Servlet: El nombre del servlet action de Struts utilizado en la aplicacin. El web.xml descriptor de despliegue contiene una entrada para el servlet de accin y especifica las adecuadas Struts parmetros especficos, tales como la ruta de la clase servlet dentro de la biblioteca Struts y el strutsconfig.xml archivo de configuracin dentro de la aplicacin.
o Patrn de Accin URL: Especifica los patrones de las solicitudes de entrada que se asignan a la accin del controlador Struts. Esto genera una entrada de asignacin en el descriptor de despliegue. De forma predeterminada, slo el *.do se asigna patrn.
o Aplicacin de Recursos: Permite especificar el paquete de recursos que se utilizarn en el struts-config.xml archivo de mensajes de localizacin. De forma predeterminada, esto es com.myapp.struts.Application
o Aadir dominios de primer nivel de Struts: Le permite generar descriptores de etiquetas de la biblioteca para las bibliotecas de etiquetas de Struts. Un descriptor de biblioteca de etiquetas es un documento XML que contiene informacin adicional acerca de la biblioteca de etiquetas completo, as como cada etiqueta individual. En general esto no es necesario, porque se puede consultar en lnea los URI en lugar de archivos locales de dominios de nivel superior.
5. Al hacer clic en Finalizar, el IDE crea la carpeta del proyecto en su sistema de archivos. Al igual que con cualquier aplicacin web en el IDE, la carpeta del proyecto contiene todas las fuentes y los metadatos del IDE del proyecto, tales como la secuencia de comandos. Sin embargo, la aplicacin Web, adems cuenta con todas las bibliotecas de Struts en su ruta de clase. No slo estn en ruta de clases de la aplicacin, pero se incluyen en el proyecto y se empaquetan con l ms tarde, cuando se genera el proyecto.
Los archivos de configuracin de Struts, as como el descriptor de la aplicacin de despliegue, estn convenientemente ubicados dentro de la carpeta Archivos de configuracin.
Abrimos el descriptor de despliegue web.xml. Con el fin de manejar el procesamiento de Struts, un mapeo se proporciona para el servlet controlador de Struts:
Creacin de una pgina de acceso 1. Damos clic en el nodo del proyecto MyStrutsApp, seleccionamos Nuevo> JSP, y asignamos al nombre del nuevo archivo login. Clic en Finalizar. El archivo login.jsp se abre en el editor de cdigo.
2. En el Editor de cdigo fuente, modificamos el contenido de las etiquetas <title> y <h1> a Login Form .
3. Agregamos los siguientes dos directivas taglib a la parte superior del archivo:
Muchas aplicaciones web utilizan pginas JSP para vistas en el paradigma MVC, por lo que Struts proporciona las bibliotecas de etiquetas personalizadas, que facilitan la interaccin con los formularios HTML. Estos se pueden aplicar fcilmente a un archivo JSP utilizando el soporte del IDE para completar el cdigo.
El Bean taglib le ofrece numerosas etiquetas que son tiles cuando se asocia un grano de forma (es decir, un ActionForm Bean), con los datos recogidos en el formulario.
5. En la paleta (Window> Palette) en la regin derecha del IDE, arrastramos un elemento de la tabla de la categora de HTML a un punto situado justo encima de la lnea <html:submit value="Login" />. Se muestra el cuadro de dilogo Insertar. Establecemos las filas de 3 , las columnas a 2 , y dejamos el resto de valores en 0 .
10
El elemento html:text permite hacer coincidir los campos de entrada de la forma con propiedades en la forma del bean que se crear en el siguiente paso.
11
8. Movemos el <html:submit value="Login" /> elemento en la segunda columna de la fila de la tabla en tercer lugar, por lo que la tercera fila de la tabla aparece de la siguiente manera:
12
1. Damos clic en el nodo del proyecto MyStrutsApp , seleccionamos Nuevo> JSP, y asignamos al nombre del nuevo archivo success . En el campo Carpeta, damos clic en el botn Examinar y seleccionamos WEB-INF en el cuadro de dilogo que aparece. Damos clic en Seleccionar carpeta para entrar en WEB-INF en el campo Carpeta. Los archivos contenidos en la carpeta WEB-INF no son directamente accesibles a las peticiones de los clientes. Con el fin de que se muestre correctamente success.jsp , debe contener los datos procesados. Clic en Finalizar.
13
Mediante el empleo de las etiquetas <bean:write> , hacemos uso del bean taglib para localizar el ActionForm del vean que est a punto de crear y visualizar los datos del usuario guardados para name y email.
14
2. Asignamos LoginForm al nombre de clase y seleccionamos com.myapp.struts como el paquete de la lista desplegable y damos clic en Finalizar.
15
El IDE crea el ActionForm Bean y lo abre en el Editor de cdigo fuente. De forma predeterminada, el IDE ofrece un String llamado name y un int llamado number. Ambos campos tienen mtodos de acceso definidos por ellos.
16
Adems, el IDE agrega una declaracin de bean al archivo strutsconfig.xml. Si abrimos el archivo struts-config.xml en el Editor de cdigo fuente, se puede ver la siguiente declaracin, que fue aadido por el asistente:
3. En el ActionForm Bean, creamos campos y que acompaen a los mtodos de acceso que corresponden a los campos de entrada name y email de texto que se crearon en el login.jsp . Debido a que name ya se ha creado en el cuerpo de ActionForm, slo crearemos el campo email. Agregamos la siguiente declaracin bajo name:
Para crear los mtodos de acceso, colocamos el cursor en el campo email y pulsamos Alt-Insert.
17
Seleccione Getter y Setter, a continuacin, en el cuadro de dilogo que aparece, seleccione email : String y haga clic en Generar.Mtodos de acceso se generan para el email de campo.
18
1. En la ventana de Proyectos, damos clic en el nodo del proyecto MyStrutsApp y seleccionamos Nuevo>Otros. En la categora de Struts Struts elegimos Accin. Clic en Siguiente.
2. En el panel Nombre y ubicacin, cambiamos el nombre a LoginAction. Seleccionamos com.myapp.struts en el paquete de la lista desplegable y escribimos /login en la ruta de accin. Clic en Siguiente.
19
3. En el tercer paso del asistente, se le da la oportunidad de asociar la Action clase con un form bean. Observe que el LoginForm Bean que ya ha creado aparece como una opcin para ActionForm Nombre Bean. Realice los siguientes ajustes en el panel:
o Eliminamos la barra diagonal para el campo de entrada de recursos o Establecemos Alcance a la solicitud (perodo de sesiones es el valor del mbito predeterminado en Struts.) o Desmarcamos la opcin Validar ActionForm Bean
4. Damos clic en Finalizar. La clase LoginAction se genera, y el archivo se abre en el Editor de cdigo fuente. Tambin hay que tener en cuenta que la entrada action se agrega al archivo struts-config.xml:
20
Los atributos name y scope se aplican a Form Bean que est asociado con la accin. En concreto, cuando una solicitud de entrada los partidos /login , el marco de trabajo Struts automticamente hace la instancia de un objeto LoginForm y lo rellena con los datos del formulario enviado en la solicitud. El valor predeterminado de validate se establece true.
6. IMPLEMENTACIN DE VALIDACIN
En el Editor de cdigo fuente, navegamos a travs de la clase LoginAction y observamos el mtodo execute:
Tenga en cuenta la definicin de SUCCESS, figuran por debajo de la declaracin de la clase LoginAction:
En la actualidad, el mtodo mapping.findForward se ha configurado para remitir incondicionalmente cualquier peticin a un punto de vista de salida llamado success. Esto no es realmente conveniente, se desea realizar primero una especie de validacin de los datos de entrada para determinar si se debe enviar el success vista, o cualquier otro punto de vista diferente.
21
ACCESO A LOS DATOS DEL BEAN Y LA PREPARACIN DE UN ESTADO DE DESVO 1. Escribimos el siguiente cdigo dentro del cuerpo del mtodo execute :
2. Escribimos la siguiente clusula condicional para realizar la validacin en los datos de entrada:
22
Usando la lgica de lo anterior, el mtodo execute remite la solicitud a la success si el usuario proporciona una entrada para ambas name y el email los campos, y el correo electrnico introducido contiene un smbolo "@". De lo contrario, se envia failure.
CONFIGURACIN DE UN MENSAJE DE ERROR Si el formulario de inicio de sesin se devuelve, sera bueno para informar al usuario de que la validacin ha fallado. Se puede lograr esto mediante la adicin de un error campo en el form bean, y una adecuada etiqueta <bean:write> al form login.jsp . Finalmente, en el objeto Action , establecemos el mensaje de error que se mostrar en el caso de que el failure se elija.
23
24
2. En LoginAction , en la clusula condicional if , agregamos una instruccin para fijar el mensaje de error antes de enviar la condicin failure:
25
26
4. En el cuadro de dilogo, asignamos success en el nombre de Forward. Introducimos en la ruta del archivo success.jsp en el campo de recursos (es decir, /WEB-INF/success.jsp ).
27
Damos clic en Agregar. Hay que tener en cuenta que el siguiente forward se agrega al struts-config.xml:
5. Realizamos la misma accin para agregar una entrada a seguir para failure . Establecemos la ruta del archivo de recursos para/login.jsp . El siguiente forward entrada se agrega a struts-config.
28
ADJUNTAR UNA HOJA DE ESTILOS 1. Agregaremos una sencilla hoja de estilo para el proyecto. Copiamos el archivo en el IDE, seleccione el nodo Web Pages en la ventana de Proyectos y pulse Ctrl-V). El archivo se agrega a su proyecto.
29
2. Vinculamos la hoja de estilo a sus pginas JSP mediante la adicin de una referencia entre los <head> etiquetas tanto de login.jsp y success.jsp : <link rel="stylesheet" type="text/css" href="stylesheet.css">
Ejecutar la aplicacin
1. En la ventana de Proyectos, damos clic en el nodo del proyecto y seleccionamos Ejecutar. El IDE se basa la aplicacin web y lo implementa, con el servidor que ha especificado al crear el proyecto. El explorador se abre y muestra el login.jsp pgina. Escribimos algunos datos que no pasan la validacin, es decir, dejamos en blanco el campo o introducimos una direccin de correo electrnico con un faltante smbolo "@":
30
Al hacer clic en Inicio de sesin, los vuelve a mostrar la forma de inicio de sesin de pginas, que contienen un mensaje de error:
Probamos al introducir los datos que deben pasar la validacin. Al hacer clic en Inicio de sesin, se le presentar la pgina de xito:
31