Springmvc 简明教程

Spring MVC - Bean Name Url Handler Mapping Example

以下示例展示了如何使用Spring Web MVC框架使用Bean名称URL处理程序映射。 BeanNameUrlHandlerMapping 类是默认的处理程序映射类,该类将URL请求映射到配置中所述bean的名称。

The following example shows how to use Bean Name URL Handler Mapping using the Spring Web MVC Framework. The BeanNameUrlHandlerMapping class is the default handler mapping class, which maps the URL request(s) to the name of the beans mentioned in the configuration.

<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>

例如,使用以上配置,如果 URI

For example, using the above configuration, if URI

  1. /helloWorld.htm or /hello{any letter}.htm is requested, DispatcherServlet will forward the request to the HelloController.

  2. /welcome.htm is requested, DispatcherServlet will forward the request to the WelcomeController.

  3. /welcome1.htm is requested, DispatcherServlet will not find any controller and server will throw 404 status error.

首先,让我们准备好一个运行的 Eclipse IDE,然后考虑以下步骤使用 Spring Web Framework 开发一个基于动态表单的 Web 应用程序。

To start with, let us have a working Eclipse IDE in place and consider the following steps to develop a Dynamic Form based Web Application using the Spring Web Framework.

Step

Description

1

Create a project with a name TestWeb under a package com.tutorialspoint as explained in the Spring MVC - Hello World chapter.

2

Create Java classes HelloController, WelcomeController under the com.tutorialspoint package.

3

Create view files hello.jsp, welcome.jsp under the jsp sub-folder.

4

The final step is to create the content of all source and configuration files and export the application as explained below.

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>

一旦你创建完资源文件和配置文件,导出你的应用程序。右键点击你的应用程序,使用 Export → WAR File 选项并在Tomcat的webapps文件夹中保存 TestWeb.war 文件。

Once you are done with creating source and configuration files, export your application. Right click on your application, use Export → WAR File option and save the TestWeb.war file in the Tomcat’s webapps folder.

现在,启动你的 Tomcat 服务器并确保你可以使用标准浏览器访问 webapps 文件夹中的其他网页。如果 Spring Web 应用程序一切正常,尝试一下 URL − http://localhost:8080/TestWeb/helloWorld.htm ,我们将看到以下界面。

Now, start your Tomcat server and make sure you are able to access other webpages from the webapps folder by using a standard browser. Try a URL − http://localhost:8080/TestWeb/helloWorld.htm and we will see the following screen, if everything is fine with the Spring Web Application.

spring beanname urlmapping

尝试一个网址 http://localhost:8080/TestWeb/hello.htm ,如果Spring Web应用程序一切正常,我们将会看到以下屏幕。

Try a URL − http://localhost:8080/TestWeb/hello.htm and we will see the following screen, if everything is fine with the Spring Web Application.

spring beanname urlmapping1

尝试一个网址 http://localhost:8080/TestWeb/welcome.htm ,如果Spring Web应用程序一切正常,我们将会看到以下屏幕。

Try a URL http://localhost:8080/TestWeb/welcome.htm and we will see the following screen, if everything is fine with the Spring Web Application.

spring beanname urlmapping2

尝试一个网址 http://localhost:8080/TestWeb/welcome1.htm ,如果Spring Web应用程序一切正常,我们将会看到以下屏幕。

Try a URL http://localhost:8080/TestWeb/welcome1.htm and we will see the following screen, if everything is fine with the Spring Web Application.

spring beanname urlmapping3