Tutorial Spring Mvc

23
TUTORIAL DE UN PROYECTO HECHO EN NETBEANS CON SPRING MVC

description

Tutorial spring

Transcript of Tutorial Spring Mvc

TUTORIAL DE UN PROYECTO HECHO EN NETBEANS CON SPRING MVC

Introducción a Spring Web MVC

Este documento muestra cómo construir una web sencilla aplicación MVC con el Spring Framework. La aplicación permite que el usuario introduzca su nombre en un campo de texto, y al hacer clic en Aceptar, el nombre se devuelve y se muestra en una segunda página con un saludo de bienvenida.

El Spring Framework es un marco de populares aplicaciones de código abierto que pueden hacer de desarrollo Java EE fácil. Se compone de un contenedor, un marco para la gestión de componentes, y un conjunto de complemento de los servicios para las interfaces de usuario de la web, las transacciones, y la persistencia. Una parte de la Spring Framework es Spring Web MVC, un framework MVC extensible para crear aplicaciones web.

El IDE proporciona soporte integrado para la primavera de Framework 3.0 y 2.5. bibliotecas marco se incluyen con el IDE y se agregan automáticamente al proyecto de ruta de clases cuando el marco está seleccionado. Las opciones de configuración se proporcionan, tales como nombrar y cartografía de la Primavera Web MVC DispatcherServlet. La biblioteca JSTL opcionalmente se pueden registrar en la creación del proyecto. Apoyo para la primavera de archivos de configuración XML de frijol también se proporciona, incluyendo las siguientes funciones:

Código de terminación. Se invoca en los archivos de configuración XML de primavera para las clases de Java, así como las referencias de frijol.

Navegación. Hipervínculos de las clases Java y propiedades mencionadas en las definiciones de frijol de primavera, así como hipervínculos a otras referencias de primavera de frijol.

Refactoring. Cambiar el nombre de referencias a las clases de Java en los archivos de la primavera de configuración XML.

Contenido

El contenido de esta página es aplicable a NetBeans IDE 6.9.

La creación de un nuevo proyecto con Spring Web MVC Apoyo o Creación de un proyecto Web de primavera Esqueleto MVC o Ejecución del Proyecto Esqueleto

Descripción de la solicitud La implementación de un servicio Implementar el controlador y el modelo Implementación de los dictámenes

Para completar este tutorial, usted necesita el siguiente software y recursos.Versión de software o de recursos necesarios:

- NetBeans IDE, la versión 6.9 de Java paquete.- Java Development Kit (JDK) versión 6.- GlassFish v3 o servidor Open Source Edition 3.0.1.

Crear un proyecto Web de la primavera del esqueleto de MVC

Comience por crear un nuevo proyecto para una aplicación web utilizando el Marco de la primavera.

1. Elija Nuevo proyecto (Ctrl + Mayúsculas + N) en el menú Archivo del IDE. Seleccione la categoría Java Web, a continuación, en seleccionar proyectos de aplicaciones Web. Haga clic en Siguiente.2. En Nombre del proyecto, el tipo de HelloSpring. Haga clic en Siguiente.3. En el Paso 3: Configuración del servidor y, anule la selección de los contextos y la opción Habilitar la inyección de dependencias, ya que no están trabajando con la especificación JSR-299 en este tutorial.Además, asegúrese de que el servidor GlassFish se selecciona en la lista desplegable Servidor, y tenga en cuenta que la plataforma Java EE 6 Web es la versión de EE predeterminada para este servidor. Haga clic en Siguiente.4. En el paso 4, el panel Marcos, seleccione Spring Web MVC.

Cuando se selecciona Spring Web MVC, tenga en cuenta que la JSTL (JavaServer Pages Standard Tag Library) la colección se añade a la ruta de clases durante la creación del proyecto de forma predeterminada.

Deseleccionar esta opción (como en la pantalla de arriba), ya que no requieren JSTL para este tutorial. Además, tenga en cuenta que el IDE le permite agregar la colección de primavera de 2,5 a su proyecto, si esta es su preferencia.

5. Haga clic en la ficha Configuración y observe que el asistente le permite especificar el nombre y el mapeo del servlet primavera Dispatcher.

6. Haga clic en Finalizar. El IDE crea un proyecto para toda la aplicación, incluyendo todos los metadatos, así como la hormiga del proyecto de secuencia de comandos quese puede inspeccionar desde la ventana de archivos (Ctrl-2; ⌘ -2 en Mac). Usted puedever la estructura de la plantilla de la ventana de proyectos (Ctrl-1; ⌘ -1 en Mac). También tenga en cuenta que cuatro de los archivos abiertos por defecto en el editor del IDE: despachador servlet.xml, redirect.jsp applicationContext.xml, y index.jsp.

7. En la ventana Proyectos, expanda el nodo del proyecto de Bibliotecas y observe que el JAR de primavera se incluyen en la ruta de clase del proyecto.

La ejecución del Proyecto Esqueleto

Antes de hacer cualquier cambio a los archivos de proyecto, intente ejecutar el nuevo proyecto en el IDE:

1. Haga clic en el proyecto de ejecución (botón Ejecutar proyecto) en la barra de herramientas principal del IDE. El IDE se inicia automáticamente el servidor GlassFish, si no se está ejecutando, se compila el proyecto, entonces se despliega en el servidor. Tenga en cuenta cualquier salida que aparecen en la ventana de salida del IDE (Ctrl-4; ⌘ -4 en Mac). La salida generada se completa con un mensaje CONSTRUIR CON ÉXITO.

El navegador del IDE por defecto se pone en marcha, y ver el contenido de la vista de página de inicio (/ WEB-INF/jsp/index.jsp).

Cuando se ejecuta el proyecto en el IDE, el proyecto se compila y se implementa en el servidor y, a continuación se abre en el navegador por defecto. Además, el IDE proporciona una función de implementar en Guardar, que se activa de forma predeterminada para proyectos web. Al guardar archivos en el editor, el proyecto se vuelve a compilar automáticamente y se implementa en el servidor. Para ver los cambios, simplemente tendrá que cargar las páginas en el navegador.

Para entender lo que acaba de tener lugar, empezar por el examen del proyecto descriptor de despliegue (web.xml). Para abrir este archivo en el Editor de código fuente, haga clic en el nodo WEB-INF> web.xml en la ventana de proyectos y elija Editar. El punto de entrada por defecto para la aplicación es redirect.jsp:

Dentro de redirect.jsp, hay una redirección declaración que señala todas las peticiones en index.htm:

En el descriptor de despliegue, tenga en cuenta que todas las solicitudes de los patrones de URL que coincidan con *. htm se asignan a DispatcherServlet Spring.

El nombre completo del servlet, despachador, como se muestra arriba, es org. herServlet.

El DispatcherServlet controla las solicitudes entrantes en función de parámetros de configuración se encuentran en el distribuidor-servlet.xml. despachador servlet.xml haciendo clic en su ficha en el editor en Abrir. Tenga en cuenta el siguiente código.

Tres granos se definen en este archivo: IndexController, viewResolver y UrlMapping. Cuando el DispatcherServlet recibe una solicitud que coincide con *. htm como index.htm, busca un controlador en UrlMapping que puede atender la petición. Por encima, se ve que hay una propiedad que las asignaciones de enlaces / index.htm para IndexController.

El entorno de ejecución a continuación, busca la definición de un bean llamado IndexController, que está convenientemente proporcionada por el proyecto esqueleto. Tenga en cuenta que se extiende IndexController ParameterizableViewController. Esta es otra clase proporcionada por la primavera, que simplemente devuelve un punto de vista. Por encima, tenga en cuenta que p: ViewName = "índice" especifica el nombre de vista lógico, que se resuelve mediante el viewResolver anteponiendo / WEB-INF/jsp / jsp y anexar a la misma.. Esto permite que el tiempo de ejecución para localizar el archivo en el directorio de la aplicación, y responder con la vista de página de inicio (/ WEB-INF/jsp/index.jsp).

Resumen de la Solicitud

La aplicación creada consta de dos páginas JSP (que se puede denominar como puntos de vista en MVC terminología). La primera vista contiene un formulario HTML con un campo de entrada pidiendo el nombre del usuario. El segundo punto de vista es una página que simplemente muestra un mensaje de saludo que contiene el nombre del usuario.

Las vistas son administrados por un controlador, que recibe las peticiones de la demanda y decide qué puntos de vista para volver. También pasa a los puntos de vista toda la información que necesitan para mostrar (esto se llama un modelo). Este controlador de aplicación se denomina HelloController.

En una aplicación compleja red, la lógica de negocio no se encuentra directamente en el controlador. En cambio, otra entidad, llamada un servicio, es utilizado por el controlador cada vez que necesita realizar alguna lógica de negocio. En nuestra aplicación, la lógica de negocio se limita al acto de procesar el mensaje de saludo, y para ello se crea un HelloService.

La implementación de un servicio

Ahora que usted está seguro de su entorno está configurado correctamente, puede empezar a ampliar el proyecto esqueleto de acuerdo a sus necesidades. Comience por crear la clase HelloService.

1. Haga clic en el archivo nuevo (botón Nuevo archivo), situado en la barra de herramientas del IDE. (También puede pulsar Ctrl-N;. ⌘-N en Mac)2. Seleccione la categoría de Java, a continuación, seleccione la clase de Java y haga clic en Siguiente.3. En el asistente Nueva Clase de Java que aparece, escriba HelloService para Nombre de clase, y entrará en servicio para el Nombre del paquete para crear un nuevo paquete para la clase. 4. Haga clic en Finalizar. El IDE crea la nueva categoría y lo abre en el editor.

La clase HelloService realiza un servicio muy sencillo. Se necesita un nombre como un parámetro, y prepara y devuelve una cadena que incluye el nombre. En el editor, cree la siguiente sayHello () para la clase (los cambios en negrita).

Implementar el controlador y el modelo

Puede utilizar un SimpleFormController para manejar los datos del usuario y determinar que el fin de regresar.

1. Abra el asistente de Nuevo archivo pulsando Ctrl-N (N-⌘ en Mac). En Categorías seleccione Spring Framework, bajo Tipos de archivo seleccione Sencillo controlador.

NetBeans IDE proporciona plantillas para la primavera de diversos artefactos, incluyendo la primavera XML del archivo de configuración, AbstractController, y la SimpleFormController.

2. Haga clic en Siguiente.3. Nombre de la clase HelloController y crear un nuevo paquete para él escribiendo controlador en el campo de texto del paquete. Haga clic en Finalizar. El IDE crea la nueva clase y lo abre en el editor.4. Especifique las propiedades del controlador, quitando los comentarios de losmétodos setter que muestran de forma predeterminada en la plantilla de clase. Parades comentar el fragmento de código, seleccione el código como en la imagen de abajo, a continuación, pulse Ctrl + / (⌘ - / en Mac).

Si se presiona Ctrl-/ (⌘ - / en Mac) alterna comentarios en el editor.

5. Realice los cambios de la siguiente manera (en negrita).

Ajuste de la FormView permite establecer el nombre de la vista que se utiliza para mostrar el formulario. Esta es la página que contiene el campo de texto permite a los usuarios entrar en su nombre. Ajuste de la SuccessView también le permite establecer el nombre de la opinión de que debería mostrar en un éxito de presentar. Al establecer la propiedad CommandName se define el nombre del comando en el modelo. En este caso, el comando es el objeto de formulario con los parámetros de la petición vinculada a ella. Ajuste de la CommandClass le permite establecer el nombre de la clase de comandos. Una instancia de esta clase se pobladas y validado en cada solicitud.

Tenga en cuenta que un error se marca para el nombre en el setCommandClass () método:

Ahora necesitamos crear la clase Nombre como un grano simple para almacenar la información para cada solicitud.

6. En la ventana Proyectos, haga clic en el nodo del proyecto y elija New> Java Class. La Nueva Clase de Java muestra el asistente.7. Ingrese el nombre para el nombre de clase, y por paquete de controlador, seleccione de la lista desplegable.8. Haga clic en Finalizar. Nombre de la clase se crea y se abre en el editor.9. En la clase de nombre, crear un campo denominado valor, a continuación, crear métodos de acceso (es decir, métodos getter y setter) para este campo. Para empezar, se declara el campo de valor:

Para salir rápidamente de tipo "privado" puede "pr" tipo a continuación, presione Tab. El "privado" modificador de acceso se agrega automáticamente a la línea. Este es un ejemplo del uso de código del editor de plantillas. Para obtener una lista completa de plantillas de código, seleccione Ayuda> Funciones rápidas de teclado de tarjetas.

El IDE puede crear métodos de acceso para usted. En el editor, haga clic en el valor y elija Insertar Código (o presione Alt Insertar, Ctrl-I en Mac). En el menú emergente, elegir getter y setter.

10. En el cuadro de diálogo que aparece, seleccione el valor: la opción de cadena, a continuación, haga clic en Aceptar. El getValue () y setValue () se agregó a la clase Nombre:

Presione Ctrl-Tab y elija HelloController para volver a la clase HelloController. Tenga en cuenta que la tarjeta de identificación de error anterior ha desaparecido ya que la clase Nombre ahora existe. Elimine el doSubmitAction () y elimine la onSubmit () método. El onSubmit () método le permite crear su propia ModelAndView, que es lo que se necesita aquí. Realice los cambios siguientes:

Como se indicó anteriormente, el comando se redefine como un objeto Nombre. Una instancia de ModelAndView se crea, y el punto de vista el éxito se obtiene mediante un captador en SimpleFormController. Por último, el modelo se rellena con datos. El único punto en nuestro modelo es el mensaje hola obtenidos a partir de la HelloService creado anteriormente. Se utiliza el addObject () para añadir el mensaje de saludo a la modelo en el marco del helloMessage nombre.

12. Corregir los errores de importación haciendo clic derecho en el editor y la elección de las importaciones Fix (Ctrl + Mayúsculas + I; ⌘ + Mayúsculas + I en Mac).

13. Haga clic en Aceptar. La declaración de importación se añade lo siguiente al principio del archivo:

Como se indica en la documentación de la API, esta clase "representa un modelo y ver que devuelve un controlador, que se resolvió por un DispatcherServlet La vista puede adoptar la forma de un nombre de vista de cadenas que deben ser resueltos por un objeto ViewResolver.; alternativamente, un objeto View se puede especificar directamente. El modelo es un mapa, permitiendo el uso de varios objetos introducidos por su nombre. "

Tenga en cuenta que en este momento, no todos los errores corregidos porque la clase todavía no puede identificar la clase HelloService, ni hacer uso de su método sayHello ().

14. En HelloController, declarar un campo privado llamado HelloService:

A continuación, cree un método de establecimiento público para el campo:

Por último, haga clic en el editor y seleccione Corregir importaciones (Ctrl + Mayúsculas + I; ⌘ + Mayúsculas + I en Mac). La siguiente declaración se agrega a la parte superior del archivo:

Todos los errores fijar ahora.

15. Registro HelloService en applicationContext.xml. applicationContext.xml abierta en el editor y escriba la declaración de frijol siguientes:

16. Registro HelloController en despachador servlet.xml. Abrir despachador servlet.xml en el editor y escriba la declaración de frijol siguientes:

La aplicación de los dictámenes

Para poner en práctica la visión de este proyecto, es necesario crear dos páginas JSP. La primera, que llamaremos nameView.jsp, sirve como la página de bienvenida y permite al usuario introducir un nombre. La otra página, helloView.jsp, muestra un mensaje de bienvenida que incluye el nombre de entrada. Comience por la creación de helloView.jsp.

1. En la ventana Proyectos, haga clic en el nodo WEB-INF> jsp y elija New> JSP. El nuevo asistente de JSP abre archivos. Nombre del archivo helloView.2. Haga clic en Finalizar. La nueva página JSP se crea en la carpeta jsp y se abre en el editor.3. En el editor, cambiar el título del archivo de Hola, y cambiar el mensaje de salida para recuperar el helloMessage del objeto ModelandView que se crea en HelloController.

4. Creamos otra página JSP de la misma manera que el anterior, pero el nombre que nameView.5. En el editor, agregue la siguiente etiqueta de primavera de la declaración de la colección de nameView.jsp.

Esto importa la biblioteca de etiquetas de Primavera, que contiene etiquetas útiles en la aplicación de puntos de vista como las páginas JSP.

6. Cambiar el contenido de la <title> y etiquetas <h1> para que diga: Ingrese su Nombre.7. Escriba el siguiente código debajo de la <h1> tags:

Spring : bind permite enlazar una propiedad de bean. La etiqueta de enlace proporciona un estado de enlace y el valor, que se utiliza como el nombre y el valor del campo de entrada. De esta manera, cuando se envía el formulario, la primavera se sabe cómo extraer el valor presentado. Aquí, nuestra clase de comando (controller.Name) tiene un valor de la propiedad, por lo tanto se establece la ruta de acceso al valor.

Spring : nestedPath le permite estar precedidos de una ruta específica a un bean. Así, cuando se utiliza con la primavera: obligar a como se muestra arriba, la ruta de acceso al bean se convierte en: name.value. Como recordarán, el nombre del comando de HelloController es el nombre. Por lo tanto, este camino se refiere al valor de la propiedad de un bean llamado nombre en el ámbito de la página.

8. Cambiar el punto de entrada en relación a la solicitud. En la actualidad, el punto de entrada del proyecto sigue siendo index.htm que, como se describe en la Ejecución del Proyecto del esqueleto de lo anterior, vuelve a dirigir a WEB-INF/jsp/index.jsp. Usted puede especificar un punto de partida para el proyecto cuando se implemente y ejecute. En la ventana Proyectos, haga clic en el nodo del proyecto y seleccione Propiedades. El proyecto de diálogo Propiedades muestra. En Categorías, seleccione Ejecutar. En el campo de dirección URL relativa, escriba / hello.htm, a continuación, haga clic en Aceptar.

En este momento usted puede preguntarse donde la asignación de hello.htm a HelloController se encuentra. Usted no ha añadido una asignación a la haba UrlMapping, como es el caso de index.htm, página de inicio del proyecto esqueleto. Esto es posible con un poco de magia de la primavera siempre en la definición de frijol siguientes despachador servlet.xml:

Este frijol es responsable de la creación automática de una asignación de URL para todos los controladores registrados en el archivo. Toma el nombre de clase completamente cualificado del controlador (en nuestro caso, controller.HelloController) y tiras el nombre del paquete y el sufijo Contralor, a continuación, utiliza el resultado como una asignación de dirección URL. Por lo tanto, para HelloController se crea una asignación hello.htm. Esta magia sin embargo, no funciona para los controladores que se incluyen en el Spring Framework, como ParameterizableViewController. Requieren una asignación explícita.

9. En los proyectos de ventana de la derecha haga clic en el nodo del proyecto y seleccione Ejecutar. Esto compila, despliega y se ejecuta el proyecto. El explorador predeterminado se abre, mostrando hello.htm como nameView del proyecto:

Escriba su nombre en el campo de texto y haga clic en entrar. La muestra helloView con un mensaje de felicitación: