Springmvc 简明教程

Spring MVC - Multiple Resolver Mapping Example

如果您想在 Spring MVC 应用程序中使用多个视图解析器,那么可以使用 order 属性设置优先级顺序。以下示例显示了如何在 Spring Web MVC 框架中使用 ResourceBundleViewResolverInternalResourceViewResolver

In case you want to use a Multiple View Resolver in a Spring MVC application then priority order can be set using the order property. The following example shows how to use the ResourceBundleViewResolver and the InternalResourceViewResolver in the Spring Web MVC Framework.

TestWeb-servlet.xml

<bean class = "org.springframework.web.servlet.view.ResourceBundleViewResolver">
   <property name = "basename" value = "views" />
   <property name = "order" value = "0" />
</bean>
<bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name = "prefix" value = "/WEB-INF/jsp/" />
   <property name = "suffix" value = ".jsp" />
   <property name = "order" value = "1" />
</bean>

这里,order 属性定义了视图解析器的排名。在此,0 是第一个解析器,1 是下一个解析器,依此类推。

Here, the order property defines the ranking of a view resolver. In this, 0 is the first resolver and 1 is the next resolver and so on.

views.properties

hello.(class) = org.springframework.web.servlet.view.JstlView
hello.url = /WEB-INF/jsp/hello.jsp

例如,使用以上配置,如果请求 URI −

For example, using the above configuration, if URI −

  1. /hello is requested, DispatcherServlet will forward the request to the hello.jsp defined by bean hello in views.properties.

首先,让我们准备好一个运行的 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 a Java class HelloController under the com.tutorialspointpackage.

3

Create a view file hello.jsp under the jsp sub-folder.

4

Create a properties file views.properties under the SRC folder.

5

Download the JSTL library jstl.jar. Put it in your CLASSPATH.

6

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

HelloController.java

package com.tutorialspoint;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.ui.ModelMap;

@Controller
@RequestMapping("/hello")
public class HelloController{

   @RequestMapping(method = RequestMethod.GET)
   public String printHello(ModelMap model) {
      model.addAttribute("message", "Hello Spring MVC Framework!");

      return "hello";
   }

}

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

   <context:component-scan base-package = "com.tutorialspoint" />

   <bean class = "org.springframework.web.servlet.view.ResourceBundleViewResolver">
      <property name = "basename" value = "views" />
      <property name = "order" value = "0" />
   </bean>
   <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name = "prefix" value = "/WEB-INF/jsp/" />
      <property name = "suffix" value = ".jsp" />
      <property name = "order" value = "1" />
   </bean>
</beans>

views.properties

hello.(class) = org.springframework.web.servlet.view.JstlView
hello.url = /WEB-INF/jsp/hello.jsp

hello.jsp

<%@ page contentType = "text/html; charset = UTF-8" %>
<html>
   <head>
      <title>Hello World</title>
   </head>
   <body>
      <h2>${message}</h2>
   </body>
</html>

在您创建了源文件和配置文件以后,导出您的应用程序。右键单击您的应用程序,使用 Export → WAR File 选项,并保存在Tomcat的webapps文件夹中。

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 your HelloWeb.war file in Tomcat’s webapps folder.

现在,启动 Tomcat 服务器,并确保您可以使用标准浏览器从 Webapps 文件夹访问其他网页。尝试访问 URL - http://localhost:8080/HelloWeb/hello ,如果 Spring Web 应用程序一切正常,我们将看到以下屏幕。

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

spring internalresourceviewresolver