Tutorial Spring MVC
Tutorial Spring MVC
Cdigo de terminacin. Se invoca en los archivos de configuracin XML de primavera para las clases de Java, as como las referencias de frijol. Navegacin. Hipervnculos de las clases Java y propiedades mencionadas en las definiciones de frijol de primavera, as como hipervnculos 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 configuracin XML.
Contenido
El contenido de esta pgina es aplicable a NetBeans IDE 6.9. La creacin de un nuevo proyecto con Spring Web MVC Apoyo o Creacin de un proyecto Web de primavera Esqueleto MVC o Ejecucin del Proyecto Esqueleto Descripcin de la solicitud La implementacin de un servicio Implementar el controlador y el modelo Implementacin de los dictmenes
Para completar este tutorial, usted necesita el siguiente software y recursos. Versin de software o de recursos necesarios: - NetBeans IDE, la versin 6.9 de Java paquete. - Java Development Kit (JDK) versin 6. - GlassFish v3 o servidor Open Source Edition 3.0.1.
Cuando se selecciona Spring Web MVC, tenga en cuenta que la JSTL (JavaServer Pages Standard Tag Library) la coleccin se aade a la ruta de clases durante la creacin del proyecto de forma predeterminada. Deseleccionar esta opcin (como en la pantalla de arriba), ya que no requieren JSTL para este tutorial. Adems, tenga en cuenta que el IDE le permite agregar la coleccin de primavera de 2,5 a su proyecto, si esta es su preferencia. 5. Haga clic en la ficha Configuracin 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 aplicacin, incluyendo todos los metadatos, as como la hormiga del proyecto de secuencia de comandos que se puede inspeccionar desde la ventana de archivos (Ctrl-2; -2 en Mac). Usted puede ver la estructura de la plantilla de la ventana de proyectos (Ctrl-1; -1 en Mac). Tambin 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.
El navegador del IDE por defecto se pone en marcha, y ver el contenido de la vista de pgina 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 continuacin se abre en el navegador por defecto. Adems, el IDE proporciona una funcin 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 automticamente y se implementa en el servidor. Para ver los cambios, simplemente tendr que cargar las pginas 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 cdigo 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 aplicacin es redirect.jsp:
Dentro de redirect.jsp, hay una redireccin declaracin que seala 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.springframework.web.servlet.DispatcherServlet. Esta clase est contenida en la coleccin de primavera, que se agrega al proyecto de ruta de clases cuando el proyecto se ha creado. Usted puede verificar esto en la ventana de proyectos mediante la profundizacin del nodo Bibliotecas. Busque la primavera-webmvc3.0.0.RELEASE.jar, a continuacin, extenderlo a encontrar org.springframework.web.servlet> DispatcherServlet. El DispatcherServlet controla las solicitudes entrantes en funcin de parmetros de configuracin 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 cdigo.
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 peticin. Por encima, se ve que hay una propiedad que las asignaciones de enlaces / index.htm para IndexController. El entorno de ejecucin a continuacin, busca la definicin 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 lgico, que se resuelve mediante el viewResolver anteponiendo / WEB-INF/jsp / jsp y anexar a la misma.. Esto permite que el tiempo de ejecucin para localizar el archivo en el directorio de la aplicacin, y responder con la vista de pgina de inicio (/ WEB-INF/jsp/index.jsp).
Resumen de la Solicitud
La aplicacin creada consta de dos pginas JSP (que se puede denominar como puntos de vista en MVC terminologa). La primera vista contiene un formulario HTML con un campo de entrada pidiendo el nombre del usuario. El segundo punto de vista es una pgina 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. Tambin pasa a los puntos de vista toda la informacin que necesitan para mostrar (esto se llama un modelo). Este controlador de aplicacin se denomina HelloController.
En una aplicacin compleja red, la lgica 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 lgica de negocio. En nuestra aplicacin, la lgica de negocio se limita al acto de procesar el mensaje de saludo, y para ello se crea un HelloService.
La implementacin 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 (botn Nuevo archivo), situado en la barra de herramientas del IDE. (Tambin puede pulsar Ctrl-N;. -N en Mac) 2. Seleccione la categora de Java, a continuacin, 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 categora y lo abre en el editor. La clase HelloService realiza un servicio muy sencillo. Se necesita un nombre como un parmetro, y prepara y devuelve una cadena que incluye el nombre. En el editor, cree la siguiente sayHello () para la clase (los cambios en negrita).
NetBeans IDE proporciona plantillas para la primavera de diversos artefactos, incluyendo la primavera XML del archivo de configuracin, 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 los mtodos setter que muestran de forma predeterminada en la plantilla de clase. Para des comentar el fragmento de cdigo, seleccione el cdigo como en la imagen de abajo, a continuacin, 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 pgina que contiene el campo de texto permite a los usuarios entrar en su nombre. Ajuste de la SuccessView tambin le permite establecer el nombre de la opinin de que debera 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 parmetros de la peticin 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 () mtodo:
Ahora necesitamos crear la clase Nombre como un grano simple para almacenar la informacin 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 continuacin, crear mtodos de acceso (es decir, mtodos getter y setter) para este campo. Para empezar, se declara el campo de valor:
Para salir rpidamente de tipo "privado" puede "pr" tipo a continuacin, presione Tab. El "privado" modificador de acceso se agrega automticamente a la lnea. Este es un ejemplo del uso de cdigo del editor de plantillas. Para obtener una lista completa de plantillas de cdigo, seleccione Ayuda> Funciones rpidas de teclado de tarjetas. El IDE puede crear mtodos de acceso para usted. En el editor, haga clic en el valor y elija Insertar Cdigo (o presione Alt Insertar, Ctrl-I en Mac). En el men emergente, elegir getter y setter.
10. En el cuadro de dilogo que aparece, seleccione el valor: la opcin de cadena, a continuacin, 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 identificacin de error anterior ha desaparecido ya que la clase Nombre ahora existe. Elimine el doSubmitAction () y elimine la onSubmit () mtodo. El onSubmit () mtodo 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 aadir el mensaje de saludo a la modelo en el marco del helloMessage nombre.
12. Corregir los errores de importacin haciendo clic derecho en el editor y la eleccin de las importaciones Fix (Ctrl + Maysculas + I; + Maysculas + I en Mac).
13. Haga clic en Aceptar. La declaracin de importacin se aade lo siguiente al principio del archivo:
Como se indica en la documentacin 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 todava no puede identificar la clase HelloService, ni hacer uso de su mtodo sayHello ().
Por ltimo, haga clic en el editor y seleccione Corregir importaciones (Ctrl + Maysculas + I; + Maysculas + I en Mac). La siguiente declaracin 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 declaracin de frijol siguientes:
16. Registro HelloController en despachador servlet.xml. Abrir despachador servlet.xml en el editor y escriba la declaracin de frijol siguientes:
4. Creamos otra pgina 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 declaracin de la coleccin de nameView.jsp.
Esto importa la biblioteca de etiquetas de Primavera, que contiene etiquetas tiles en la aplicacin de puntos de vista como las pginas JSP. 6. Cambiar el contenido de la <title> y etiquetas <h1> para que diga: Ingrese su Nombre. 7. Escriba el siguiente cdigo 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 enva el formulario, la primavera se sabe cmo 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 especfica 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 recordarn, 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 pgina. 8. Cambiar el punto de entrada en relacin a la solicitud. En la actualidad, el punto de entrada del proyecto sigue siendo index.htm que, como se describe en la Ejecucin 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 dilogo Propiedades muestra. En Categoras, seleccione Ejecutar. En el campo de direccin URL relativa, escriba / hello.htm, a continuacin, haga clic en Aceptar.
En este momento usted puede preguntarse donde la asignacin de hello.htm a HelloController se encuentra. Usted no ha aadido una asignacin a la haba UrlMapping, como es el caso de index.htm, pgina de inicio del proyecto esqueleto. Esto es posible con un poco de magia de la primavera siempre en la definicin de frijol siguientes despachador servlet.xml:
Este frijol es responsable de la creacin automtica de una asignacin 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 continuacin, utiliza el resultado como una asignacin de direccin URL. Por lo tanto, para HelloController se crea una asignacin hello.htm. Esta magia sin embargo, no funciona para los controladores que se incluyen en el Spring Framework, como ParameterizableViewController. Requieren una asignacin explcita. 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 felicitacin: