Spring MVC - Ejemplo de asignación de controlador de URL de nombre de bean
El siguiente ejemplo muestra cómo usar la asignación de manejador de URL de nombre de bean usando Spring Web MVC Framework. losBeanNameUrlHandlerMapping class es la clase de mapeo del manejador por defecto, que mapea las solicitudes de URL al nombre de los beans mencionados en la configuración.
<beans>
<bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name = "prefix" value = "/WEB-INF/jsp/"/>
<property name = "suffix" value = ".jsp"/>
</bean>
<bean class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name = "/helloWorld.htm"
class = "com.tutorialspoint.HelloController" />
<bean name = "/hello*"
class = "com.tutorialspoint.HelloController" />
<bean name = "/welcome.htm"
class = "com.tutorialspoint.WelcomeController"/>
</beans>
Por ejemplo, usando la configuración anterior, si URI
/helloWorld.htm o / hello {se solicita cualquier carta} .htm, DispatcherServlet reenviará la solicitud al HelloController.
/welcome.htm, DispatcherServlet enviará la solicitud al WelcomeController.
Se solicita /welcome1.htm, DispatcherServlet no encontrará ningún controlador y el servidor arrojará un error de estado 404.
Para empezar, tengamos un IDE de Eclipse en funcionamiento y consideremos los siguientes pasos para desarrollar una aplicación web basada en formularios dinámicos utilizando Spring Web Framework.
Paso | Descripción |
---|---|
1 | Cree un proyecto con un nombre TestWeb en un paquete com.tutorialspoint como se explica en el capítulo Spring MVC - Hello World. |
2 | Cree clases de Java HelloController, WelcomeController en el paquete com.tutorialspoint. |
3 | Cree archivos de vista hello.jsp, welcome.jsp en la subcarpeta jsp. |
4 | El paso final es crear el contenido de todos los archivos fuente y de configuración y exportar la aplicación como se explica a continuación. |
HelloController.java
package com.tutorialspoint;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class HelloController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("hello");
model.addObject("message", "Hello World!");
return model;
}
}
WelcomeController.java
package com.tutorialspoint;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class WelcomeController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("welcome");
model.addObject("message", "Welcome!");
return model;
}
}
TestWeb-servlet.xml
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:context = "http://www.springframework.org/schema/context"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name = "prefix" value = "/WEB-INF/jsp/"/>
<property name = "suffix" value = ".jsp"/>
</bean>
<bean class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name = "/helloWorld.htm"
class = "com.tutorialspoint.HelloController" />
<bean name = "/hello*"
class = "com.tutorialspoint.HelloController" />
<bean name = "/welcome.htm"
class = "com.tutorialspoint.WelcomeController"/>
</beans>
hello.jsp
<%@ page contentType = "text/html; charset = UTF-8" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h2>${message}</h2>
</body>
</html>
welcome.jsp
<%@ page contentType = "text/html; charset = UTF-8" %>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h2>${message}</h2>
</body>
</html>
Una vez que haya terminado de crear archivos fuente y de configuración, exporte su aplicación. Haga clic derecho en su aplicación, useExport → WAR File opción y guarde la TestWeb.war archivo en la carpeta webapps de Tomcat.
Ahora, inicie su servidor Tomcat y asegúrese de poder acceder a otras páginas web desde la carpeta webapps utilizando un navegador estándar. Prueba una URL -http://localhost:8080/TestWeb/helloWorld.htm y veremos la siguiente pantalla, si todo está bien con la aplicación web Spring.
Prueba una URL - http://localhost:8080/TestWeb/hello.htm y veremos la siguiente pantalla, si todo está bien con la aplicación web Spring.
Prueba una URL http://localhost:8080/TestWeb/welcome.htm y veremos la siguiente pantalla, si todo está bien con la aplicación web Spring.
Prueba una URL http://localhost:8080/TestWeb/welcome1.htm y veremos la siguiente pantalla, si todo está bien con la aplicación web Spring.