鍍金池/ 教程/ Java/ Spring MVC配置靜態(tài)資源和資源包教程
Spring MVC表單處理
Spring MVC多項單選按鈕
Spring MVC Bean名稱Url處理程序映射
Spring MVC下拉選項(Select)
Spring MVC多動作控制器
Spring4 MVC RESTFul Web Services CRUD實例+RestTemplate
Spring MVC頁面重定向
Spring MVC資源綁定視圖解析器
Spring4 MVC+Hibernate4 Many-to-many連接表+MySQL+Maven實例
Spring4 MVC REST服務(wù)示例使用@RestController
Spring MVC文本域
Spring4 MVC + AngularJS使用$http異步服務(wù)交互
Spring4 MVC文件下載實例
Spring4 MVC表單驗證
Spring4 MVC RESTFul WebServices CRUD實例+RestTemplate
Spring MVC教程
Spring MVC參數(shù)方法名稱解析器
Spring MVC生成JSON數(shù)據(jù)
Spring MVC生成XML
Spring4 MVC 表單驗證和資源處理 (使用注解)
Spring MVC單選按鈕
Spring MVC Xml視圖解析器
Spring MVC復(fù)選框
Spring4 MVC ContentNegotiatingViewResolver多種輸出格式實例
Spring MVC錯誤處理
Spring MVC復(fù)選框(多項)
Spring MVC Hibernate驗證器
Spring4 MVC Hello World注解 (Java Config)實例
Spring MVC靜態(tài)頁面
Spring4 MVC ContentNegotiatingViewResolver實例
Spring MVC列表多選框
Spring MVC生成Excel格式數(shù)據(jù)
Spring MVC文本框
Spring MVC內(nèi)部資源視圖解析器
Spring4 MVC HelloWorld 注解和JavaConfig實例
Spring4 MVC REST服務(wù)使用@RestController實例
Spring MVC簡單URL處理程序映射
Spring MVC4使用Servlet3 MultiPartConfigElement文件上傳實例
Spring MVC概述
Spring4 MVC使用Servlet 3 MultiPartConfigElement文件上傳實例
Spring4 MVC Hello WorldXML實例
Spring MVC屬性方法名稱解析器
Spring4 MVC + Hibernate4 + MySQL + Maven使用注解集成實例
Spring4 MVC + Hibernate4多對多連接表+MySQL+Maven實例
Spring4 MVC+Hibernate4+MySQL+Maven使用注解集成實例
Spring MVC配置靜態(tài)資源和資源包教程
Spring MVC可參數(shù)化的視圖控制器
Spring MVC生成RSS源
Spring4 MVC文件下載實例
Spring MVC密碼處理
Spring MVC隱藏字段域
Spring MVC文件上傳教程
Spring MVC多解析器映射
Spring MVC文件上傳處理
Spring4 MVC HelloWord實例
Spring MVC集成Log4j
Spring4 MVC+ AngularJS CRUD使用$http實例
Spring MVC - Hello World示例

Spring MVC配置靜態(tài)資源和資源包教程

1- 介紹

這篇教程文章是基于:
  • Spring 4 MVC

2- 創(chuàng)建一個項目

  • File/New/Other..



輸入:
  • Group ID: com.yiibai
  • Artifact ID: SpringMVCResource
  • Package: com.yiibai.springmvcresource

項目被創(chuàng)建以后如下:

不要擔(dān)心有錯誤消息在項目被創(chuàng)建時。原因是,我們還沒有聲明 Servlet 庫。
注意:
Eclipse 4.4(Luna)在創(chuàng)建 Maven 項目結(jié)構(gòu)時可能是有錯誤的。需要修復(fù)。

3- 配置Maven

  • pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  http://maven.apache.org/maven-v4_0_0.xsd">
  
  
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.yiibai</groupId>
  <artifactId>SpringMVCResource</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>SpringMVCResource Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
 
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
  
  
        <!-- Servlet API -->
        <!-- http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
  
 
        <!-- Jstl for jsp page -->
        <!-- http://mvnrepository.com/artifact/javax.servlet/jstl -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
 
 
        <!-- JSP API -->
        <!-- http://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
 
  
  
        <!-- Spring dependencies -->
        <!-- http://mvnrepository.com/artifact/org.springframework/spring-core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
  
        <!-- http://mvnrepository.com/artifact/org.springframework/spring-web -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
  
        <!-- http://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>

    </dependencies>
  
    <build>
        <finalName>SpringMVCResource</finalName>
        <plugins>
  
            <!-- Config: Maven Tomcat Plugin -->
            <!-- http://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat7-maven-plugin -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                  
                <!-- Config: contextPath and Port (Default - /SpringMVCResource : 8080) -->
                  
                <!--
                <configuration>
                    <path>/</path>
                    <port>8899</port>
                </configuration>
                -->
            </plugin>
        </plugins>
    </build>
      
</project>

4- 配置Spring

配置 web.xml
SpringContextListener 將讀取配置文件參數(shù) contextConfigLocation:

  • WEB-INF/web.xml
<web-app 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_3_0.xsd"
   version="3.0">
 
   <display-name>Archetype Created Web Application</display-name>
   <servlet>
       <servlet-name>spring-mvc</servlet-name>
       <servlet-class>
           org.springframework.web.servlet.DispatcherServlet
       </servlet-class>
       <load-on-startup>1</load-on-startup>
   </servlet>
 
   <servlet-mapping>
       <servlet-name>spring-mvc</servlet-name>
       <url-pattern>/</url-pattern>
   </servlet-mapping>
 
   <!-- Other XML Configuration -->
   <!-- Load by Spring ContextLoaderListener -->
   <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>
          /WEB-INF/root-context.xml
        </param-value>        
   </context-param>
 
 
   <!-- Spring ContextLoaderListener -->
   <listener>
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
 
</web-app>
配置Spring MVC:
  • WEB-INF/spring-mvc-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:p="http://www.springframework.org/schema/p"
    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-4.1.xsd  
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-4.1.xsd  
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
 
    <!-- Package Scan -->
    <context:component-scan base-package="com.yiibai.springmvcresource" />
     
    <!-- Enables the Spring MVC Annotation Configuration -->
    <context:annotation-config />
     
    <!-- Important!! -->
    <!-- Default Servlet Handler (For Resources *.css, *.js, image,..) -->
    <mvc:default-servlet-handler />
       <mvc:annotation-driven />    
 
    <!-- Config resource mapping -->
    <mvc:resources mapping="/styles/**" location="/WEB-INF/resources/css/" />
     
     
    <!-- Config Properties file -->
    <bean id="appProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list><value>classpath:ApplicationRB.properties</value></list>
        </property>
    </bean>
 
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 
        <property name="prefix">
            <value>/WEB-INF/pages/</value>
        </property>
 
        <property name="suffix">
            <value>.jsp</value>
        </property>
         
        <property name="exposedContextBeanNames">
            <list><value>appProperties</value></list>
        </property>
    </bean>
</beans>
  • WEB-INF/root-context.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">
 
   <!-- Empty -->
 
</beans>
配置靜態(tài)資源:
<!-- /WEB-INF/spring-mvc-servlet.xml -->
 
   <!-- Important!! -->
   <!-- Default Servlet Handler (For Resources *.css, *.js, image,..) -->
   <mvc:default-servlet-handler />
   <mvc:annotation-driven />  
資源映射 <mvc:resources mapping ... >:

配置Properties文件:

5- Java類

Java類
  • MyController.java
package com.yiibai.springmvcresource;

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

@Controller
public class MyController {

    @RequestMapping(value = "/staticResourceTest")
    public String staticResource(Model model) {
        return "staticResourceTest";
    }

    @RequestMapping(value = "/resourceBundleTest")
    public String resourceBundle(Model model) {
        return "resourceBundleTest";
    }
}

6- 資源包,靜態(tài)資源和視圖

Resource Bundle (Properties file):

  • ApplicationRB.properties
text.loginPrompt=Enter user name and password
text.userName=User Name
text.password=Password

靜態(tài)資源

  • scripts/common.js
function sayHello()  {    
   alert("Hello from JavaScript");
}
  • /WEB-INF/resource/css/commons.css
.button {
   font-size: 20px;
   background: #ccc;
}
 
.red-text {
   color: red;
   font-size: 30px;
}
 
.green-text {
   color: green;
   font-size: 20px;
}

視圖(兩個JSP文件)

  • staticResourceTest.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring MVC Resource example</title>
 
 
<script type="text/javascript"
    src="${pageContext.request.contextPath}/scripts/common.js"></script>
     
     
<link rel="stylesheet" type="text/css"
    href="${pageContext.request.contextPath}/styles/common.css">
 
</head>
<body>
 
    <div class="red-text">Red text</div>
    <br>
    <div class="green-text">Green text</div>
    <br>
     
    <input type="button" class="button" onclick="sayHello();"
        value="Click me!">
 
</body>
</html>
  • resourceBundleTest.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring MVC Resource Bundle example</title>
</head>
<body>
 
   <h2>${appProperties['text.loginPrompt']}</h2>
    
    ${appProperties['text.userName']} <input type="text" name="userName"> <br>
    ${appProperties['text.password']} <input type="password" name="password"> <br>
     
     
</body>
</html>

7- 運行應(yīng)用程序

首先,運行應(yīng)用程序之前,您需要構(gòu)建整個項目。
右鍵單擊項目并選擇:


運行配置:



輸入:
  • Name: Run SpringMVCResource
  • Base directory: ${workspace_loc:/SpringMVCResource} 可選擇“Browse Workspace..." 來選對應(yīng)項目。
  • Goals: tomcat7:run

點擊 Run

靜態(tài)資源測試:

屬性文件測試:

代碼下載:http://pan.baidu.com/s/1dDSnUcL