以SpringMVC框架为中心疯狂扩展-10、添加Velocity依赖

来源:互联网 发布:nginx ip跳转域名 编辑:程序博客网 时间:2024/06/03 18:19

Velocity是基于java的模版引擎。它允许任何人使用模版语言去引用java代码中的对象。

1、Pom中添加相关的依赖。

<properties><velocity.version>1.7</velocity.version><velocity.tools.version>1.3</velocity.tools.version></properties><dependencies><!-- Velocity --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>${velocity.version}</version></dependency><!--    不添加,spring就不支持velocity --><dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context-support</artifactId>            <version>${springframework.version}</version>     </dependency></dependencies>

2、配置spring的视图过滤器

新增一个spring-velocity的视图过滤器的配置文件

<?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.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"><!--规定模板文件的类型和位置-->    <bean id="velocityConfigurer"        class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">        <property name="resourceLoaderPath" value="/WEB-INF/templates" />        <property name="velocityProperties">            <props>                <prop key="input.encoding">utf-8</prop>                <prop key="output.encoding">utf-8</prop>            </props>        </property>    </bean>    <!--配置附加工具,以及将后缀为vm的文件交给下面的Resolver处理-->    <bean id="velocityViewResolver"        class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">        <property name="suffix" value=".vm" />        <property name="contentType" value="text/html;charset=utf-8" />        <!-- 用不了velocity-tools,所以这一段就注释掉了 --><!--         <property name="toolboxConfigLocation" value="/WEB-INF/toolbox.xml"/> -->    </bean></beans>

3、修改web.xml

新增CharacterEncodingFilter的字符过滤,让web和java代码的字符集是一致的,不一致就会报错。

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>syx</display-name><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>syx</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml,classpath:spring-velocity.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>syx</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

4、新增一个controller实验类和velocity模板

package com.velocity.controller;import java.util.HashMap;import java.util.Map;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;/**  * Velocity实验Controller     * * @author sunyx  * @since JDK 1.8  */@Controller@RequestMapping("/velocity")public class VelocityController {@RequestMapping("/index")public ModelAndView index(){System.out.println("index");final Map<String,String> map = new HashMap<String,String>();map.put("name", "sunyx");return new ModelAndView("velocityIndex",map);}}
<html> <title>Hello Velocity</title> <body> Hello ${name}.</body> </html>
5、启动服务,测试一下。
可以在网页上看到,Hello sunyx.


1 0
原创粉丝点击