Diferencia entre revisiones de «Controller con Spring usando anotaciones»
(→Configuración del nombreController-servlet.xml) |
(→Ver también) |
||
(No se muestran 14 ediciones intermedias de 3 usuarios) | |||
Línea 1: | Línea 1: | ||
− | Spring | + | [[Spring Framework]] nos permiten la creación de Controllers mediante anotaciones. Mostraremos un sencillo ejemplo utilizando [[Spring Framework]] 3.0 |
== Ejemplo == | == Ejemplo == | ||
Línea 15: | Línea 15: | ||
@RequestMapping(value="/unMetodo.htm") | @RequestMapping(value="/unMetodo.htm") | ||
− | public String | + | public String imprimirHolaMundo() { |
− | System.out.println(" | + | System.out.println("Hola Mundo"); |
return "index"; | return "index"; | ||
} | } | ||
Línea 22: | Línea 22: | ||
</code> | </code> | ||
− | 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 | + | 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 el 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 === | === Configuración del web.xml === | ||
Línea 31: | Línea 31: | ||
xmlns="http://java.sun.com/xml/ns/javaee" | xmlns="http://java.sun.com/xml/ns/javaee" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 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"> | + | xsi:schemaLocation="http://java.sun.com/xml/ns/javaee |
+ | http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> | ||
<!-- Declaración del servlet --> | <!-- Declaración del servlet --> | ||
Línea 55: | Línea 56: | ||
</code> | </code> | ||
− | === Configuración del | + | === Configuración del <servlet-name>-servlet.xml === |
− | + | El nombre de este archivo debe ser el mismo que se configuró en el web.xml en el tag <servlet-name>. Como nosotros le pusimos pruebaController, quedará pruebaController-servlet.xml :) | |
<code xml> | <code xml> | ||
Línea 88: | Línea 89: | ||
<!-- | <!-- | ||
− | 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. | + | 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. | ||
--> | --> | ||
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" | <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" | ||
Línea 94: | Línea 97: | ||
</beans> | </beans> | ||
</code> | </code> | ||
+ | |||
+ | === Probamos lo realizado === | ||
+ | |||
+ | Si todo quedó como mostramos y tenemos el archivo index.jsp en la carpeta WEB-INF/jsp, deployamos el .war y deberíamos poder pegarle al controller, que ejecute el método y que redirija a index.jsp utilizando la siguiente url: | ||
+ | |||
+ | <nowiki>http://<ip>:<puerto>/<nombreApp>/<valor setteado en el @RequestMapping del método></nowiki> | ||
+ | |||
+ | Por ejemplo: | ||
+ | <nowiki>http://111.111.111.111:8001/servletSpringConAnotaciones/unMetodo.htm</nowiki> | ||
+ | |||
+ | == Ver también == | ||
+ | * [[REST con Spring]] | ||
+ | * [http://static.springsource.org/spring/docs/2.5.6/reference/mvc.html#mvc-annotation Documentación oficial de Spring para Controller con Anotaciones] | ||
+ | |||
+ | [[Category:Spring Framework]] |
Revisión actual del 17:26 10 feb 2011
Spring Framework nos permiten la creación de Controllers mediante anotaciones. Mostraremos un sencillo ejemplo utilizando Spring Framework 3.0
Contenido
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 imprimirHolaMundo() { System.out.println("Hola Mundo"); 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 el 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 <servlet-name>-servlet.xml
El nombre de este archivo debe ser el mismo que se configuró en el web.xml en el tag <servlet-name>. Como nosotros le pusimos pruebaController, quedará 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>
Probamos lo realizado
Si todo quedó como mostramos y tenemos el archivo index.jsp en la carpeta WEB-INF/jsp, deployamos el .war y deberíamos poder pegarle al controller, que ejecute el método y que redirija a index.jsp utilizando la siguiente url:
http://<ip>:<puerto>/<nombreApp>/<valor setteado en el @RequestMapping del método>
Por ejemplo: http://111.111.111.111:8001/servletSpringConAnotaciones/unMetodo.htm