Diferencia entre revisiones de «Controller con Spring usando anotaciones»

De Dos Ideas.
Saltar a: navegación, buscar
(Configuración del nombreController-servlet.xml)
(Configuración del nombreController-servlet.xml)
Línea 65: Línea 65:
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xmlns:context="http://www.springframework.org/schema/context"
 
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+
xsi:schemaLocation="http://www.springframework.org/schema/beans  
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 +
http://www.springframework.org/schema/context  
 +
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
  
 
<!--
 
<!--
 
La siguiente declaración se encargará de levantar las clases que posean las  
 
La siguiente declaración se encargará de levantar las clases que posean las  
 
anotaciones (@Controller, @RequestMapping, @Repository, etc) en el paquete que  
 
anotaciones (@Controller, @RequestMapping, @Repository, etc) en el paquete que  
se le indique. Notese que en este caso le indico el paquete de la clase controller que quiero ejemplificar.
+
se le indique. Notese que en este caso le indico el paquete de la clase controller  
 +
que quiero ejemplificar.
 
-->
 
-->
 
     <context:component-scan base-package="com.dosideas.web.controller"/>
 
     <context:component-scan base-package="com.dosideas.web.controller"/>
  
 
<!-- Declaramos un HandlerMapping para que entre al método del controller -->
 
<!-- Declaramos un HandlerMapping para que entre al método del controller -->
   <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
+
   <bean
 +
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
  
 
<!-- Declaramos un HandlerAdapter para que se redirija al .jsp que configuramos -->
 
<!-- Declaramos un HandlerAdapter para que se redirija al .jsp que configuramos -->
     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
+
     <bean
 +
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
  
 
      
 
      
 
<!--
 
<!--
El siguiente bean configura las propiedades prefijo(prefix) y sufijo(suffix)
+
En la siguiente declaración configuramos el prefijo y el sufijo del archivo .jsp (en este caso) al cual se va a redireccionar una vez que se ejecute el método del Controller.
de Internalresourceviewresolver, el cual resuelve nombres de vistas lógicas
 
retornadas por los controladores(en el ejm:clases en el paquete controller)
 
 
-->
 
-->
 
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
 
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"

Revisión del 12:54 30 dic 2009

Spring 2.5 y Spring 3 nos permiten la creación de Controllers mediante anotaciones. Mostraremos un sencillo ejemplo utilizando Spring 3.

Ejemplo

Creación del controller

package com.dosideas.web.controller;

import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;

@Controller public class PruebaController {

   @RequestMapping(value="/unMetodo.htm")
   public String iniciarAplicacion() {
       System.out.println("www.dosideas.com");
       return "index";
   }

}

Lo que hacemos en la creación del controller es agregar la anotación @Controller, que indica que dicha clase es un controller. Además, antes del método agregamos la anotación @RequestMapping con un valor. Dicho valor tendrá que ver con el url al que tendremos que dirigirnos para ejecutar el método del controller. Por último en en controller, estamos retornando un String (en este caso "index"). Ese String corresponde al nombre del .jsp (que se encuentra en WEB-INF/jsp) al que queremos que se redirija la página una vez que se ejecute el método.

Configuración del web.xml

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

   <servlet>
       <servlet-name>pruebaController</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>pruebaController</servlet-name>
       <url-pattern>*.htm</url-pattern>
   </servlet-mapping>
   <session-config>
       <session-timeout>30</session-timeout>
   </session-config>

</web-app>

Configuración del nombreController-servlet.xml

En nuestro caso llamado pruebaController-servlet.xml :)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">

   <context:component-scan base-package="com.dosideas.web.controller"/>
 <bean
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
   <bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>


   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"

p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/> </beans>