Springmvc 简明教程

Spring MVC - Static Pages Example

以下示例展示了如何使用 Spring MVC 框架编写一个简单的基于 Web 的应用程序,它可以通过 <mvc:resources> 标记访问静态页面和动态页面。

The following example shows how to write a simple web based application using Spring MVC Framework, which can access static pages along with dynamic pages with the help of a <mvc:resources> tag.

首先,让我们有一个正在工作的 Eclipse IDE,并遵循以下步骤使用 Spring Web 框架开发一个基于动态表单的 Web 应用程序。

To begin with, let us have a working Eclipse IDE in place and adhere to 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 HelloWeb under a package com.tutorialspoint as explained in the Spring MVC - Hello World chapter.

2

Create a Java class WebController under the com.tutorialspoint package.

3

Create a static file final.htm under jsp sub-folder.

4

Update the Spring configuration file HelloWeb-servlet.xml under the WebContent/WEB-INF folder as shown below.

5

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

WebController.java

package com.tutorialspoint;

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

@Controller
public class WebController {

   @RequestMapping(value = "/index", method = RequestMethod.GET)
   public String index() {
	   return "index";
   }

   @RequestMapping(value = "/staticPage", method = RequestMethod.GET)
   public String redirect() {

      return "redirect:/pages/final.htm";
   }
}

HelloWeb-servlet.xml

<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:xsi = "  http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context = "http://www.springframework.org/schema/context"
   xmlns:mvc = "http://www.springframework.org/schema/mvc"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
   http://www.springframework.org/schema/mvc
   http://www.springframework.org/schema/mvc/spring-mvc-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 id = "viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">

      <property name = "prefix" value = "/WEB-INF/jsp/" />
      <property name = "suffix" value = ".jsp" />
   </bean>
   <mvc:resources mapping = "/pages/**" location = "/WEB-INF/pages/" />
   <mvc:annotation-driven/>
</beans>

此处, <mvc:resources…​./> 标记用于映射静态页面。mapping 属性必须是一个 Ant pattern ,它指定 http 请求的 URL 模式。location 属性必须指定一个或多个有效的资源目录位置,其中包含静态页面,包括图像、样式表、JavaScript 和其他静态内容。可以使用逗号分隔的值列表指定多个资源位置。

Here, the <mvc:resources…​./> tag is being used to map static pages. The mapping attribute must be an Ant pattern that specifies the URL pattern of an http requests. The location attribute must specify one or more valid resource directory locations having static pages including images, stylesheets, JavaScript, and other static content. Multiple resource locations may be specified using a comma-separated list of values.

以下是 Spring 视图文件 WEB-INF/jsp/index.jsp 的内容。这将是一个登陆页面;此页面将发送一个请求来访问 staticPage service method ,该请求将重定向到 WEB-INF/pages 文件夹中可用的静态页面。

Following is the content of Spring view file WEB-INF/jsp/index.jsp. This will be a landing page; this page will send a request to access the staticPage service method, which will redirect this request to a static page available in WEB-INF/pages folder.

index.jsp

<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>
<html>
   <head>
      <title>Spring Landing Page</title>
   </head>
   <body>
      <h2>Spring Landing Pag</h2>
      <p>Click below button to get a simple HTML page</p>
      <form:form method = "GET" action = "/HelloWeb/staticPage">
         <table>
            <tr>
               <td>
                  <input type = "submit" value = "Get HTML Page"/>
               </td>
            </tr>
         </table>
      </form:form>
   </body>
</html>

final.htm

<html>
   <head>
      <title>Spring Static Page</title>
   </head>
   <body>
      <h2>A simple HTML page</h2>
   </body>
</html>

一旦你完成了创建源文件和配置文件,导出你的应用程序。右键单击你的应用程序,使用“导出 → WAR 文件”选项并将你的 HelloWeb.war 文件保存到 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 – [role="bare"] [role="bare"]http://localhost:8080/HelloWeb/index 。如果 Spring Web 应用程序一切正常,我们将看到以下屏幕。

Now, start your Tomcat server and make sure you are able to access other webpages from webapps folder using a standard browser. Now try to access the URL – [role="bare"]http://localhost:8080/HelloWeb/index. If everything is fine with the Spring Web Application, we will see the following screen.

spring static page

单击“获取 HTML 页面”按钮以访问 staticPage 服务方法中提到的静态页面。如果你的 Spring Web 应用程序一切正常,我们将看到以下屏幕。

Click on "Get HTML Page" button to access a static page mentioned in the staticPage service method. If everything is fine with your Spring Web Application, we will see the following screen.

spring static page result