您的位置:首页 > 编程语言 > Java开发

Spring MVC+Maven+Velocity配置实例

2016-07-22 10:13 621 查看


一、 简介

本文通过一个简单的实例展示Spring MVC+Maven+Velocity的配置过程,该配置的重点在于以下几个方面:

1 Maven依赖包

2 spring配置文件

3 web.xml配置文件

下图是最终的工程目录,我们称之为Maven工程目录:因为我们在开始创建工程的时候,使用的是Maven模板。下面会有详细说明:




二、 构建步骤

要构建一个如上图所示的工程,分以下几步实现:


1. 创建Maven(webapp)工程:

我们之所以创建Maven工程而不是一个简单的web工程,是因为依靠它我们可以简单地批量解决项目的依赖关系,而不必去手动的一个一个下载并配置相应的jar包。可参考该链接:http://jingyan.baidu.com/article/9f63fb91a7d2a5c8400f0e20.htm,介绍的比较详细。不同版本的Eclipse在细节处不会完全一致,但是大体是一致的。依照该链接的流程,我们得到了一个Maven
– webapp 模板工程,但是该工程目前仍然只是一个简单的框架而已,为了实现我们的功能,需要修改配置文件并完成相应代码。


2. 修改配置文件


1)Maven配置文件

可以看到,我们的工程中有一个pom.xml文件,为了解决依赖关系,这里只需要修改标签的内容:关于pom.xml文件的介绍,参考:http://blog.csdn.net/adeyi/article/details/17259479,有时候我们并不知道要怎么填写groupId
, artifactId , version 中的内容(scope可以暂时忽略不写)。可以在Maven官网进行搜索:http://search.maven.org/
<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>springVelDemo</groupId>
<artifactId>springVelDemo5</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>springVelDemo5 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>

<!-- Spring Framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>

<!-- velocity -->
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>springVelDemo5</finalName>
</build>
</project>


2)web.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Archetype Created Web Application</display-name>

<listener>
<description>spring</description>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- spring mvc servlet -->
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<description>spring mvc</description>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/demo-servlet.xml</param-value> <!-- spring-servlet 配置路径 -->
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>.htm</url-pattern> <!-- 以htm结尾的url将会交给demo来处理  -->
</servlet-mapping>
</web-app>


3)Spring配置文件

可以看到,web.xml文件中有一项参数/WEB-INF/demo-servlet.xml,其中demo-servlet.xml就是我们的spring配置文件。因为我们的工程中要用到spring。因此,在WEB-INF下新建文件demo-servlet.xml(这里demo是不能更改的,它需要与而我们在web.xml中对spring MVC servlet的命名保持一致),并输入以下内容。
<?xml version="1.0" encoding="UTF-8"?>
<!-- Bean头部 -->
<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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <!-- 激活@Controller模式 -->
<mvc:annotation-driven />

<!-- spring可以自动去扫描base-package下面或者子包下面的java文件-->
<!--如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean -->
<context:component-scan base-package="com.tiemei.spring.demo.controller" />

<!-- for velocity view -->
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/templates/" /> <!-- velocity前端渲染文件.vm路径设置-->
</bean>
<bean id="vmViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true" />
<property name="prefix" value="" />
<property name="suffix" value=".vm" />
<property name="order" value="1" /> <!-- 多ViewResovler配置 -->
</bean>
</beans>


至此,我们的配置文件已经全部完成了,为了完成程序功能,还需要一些控制与显示代码,见下文:


3. 控制与显示


1)控制实体

在src/main/java下新建包:com.tiemei.spring.demo.controller,并创建class:VelocityController.java。输入以下内容:
package com.tiemei.spring.demo.controller;

import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Controller
public class VelocityController extends AbstractController {
@Override
@RequestMapping("/vmview.htm")
protected ModelAndView handleRequestInternal(HttpServletRequest req, HttpServletResponse resp) throws Exception {
System.out.println("------------ enter VelocityController");

List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
return new ModelAndView("vmview", "list", list);
}

}


2)前端.vm文件

可以看到我们在spring容器中配置了velocity,而velocity的配置中指出了其前端文件的格式与路径。在WEB-INF路径下新建文件夹templates,并新建文件vmview.vm,输入以下内容:
<ul>
#foreach( $entry in $list )
<li>$entry</li>
#end


三、 结果输出

以上我们完成了Spring MVC+Maven+Velocity配置实例,那么如何知道自己的配置是成功的?或者说我们的工程要完成一个什么样的功能呢?

在浏览器中输入http://localhost:8080/springVelDemo5/vmview.htm,如果出现以下内容,则说明我们的实例与配置没有问题。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: