Spring整合Velocity

本文详细介绍了如何将Velocity模板引擎与SpringMVC框架整合,包括必要的依赖导入、配置步骤及Velocity的基本用法,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在整合velocity模板引擎写的前端页面,遇到的一些小坑,记录一波:

一、velocity是什么?

官方网站:http://velocity.apache.org/

官方文档:http://velocity.apache.org/engine/devel/user-guide.html#The_Mud_Store_Example

中文翻译文档:http://ifeve.com/apache-velocity-dev/

二、什么是springMVC?

这个自己体会

三、正式开始整合

1、导入依赖

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity</artifactId>
      <version>1.7</version>
    </dependency>
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity-tools</artifactId>
      <version>2.0</version>
    </dependency>

2、在web.xml中配置springMVC

<!-- 配置DispatcherServlet -->
  <servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置springMVC需要加载的配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-mvc.xml</param-value>
    </init-param>
</servlet>

3、在spring-mvc.xml中配置velocity

    <!--velocity-->
    <bean id="velocityConfig" 
          class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
        <!--这里配置vm文件的位置-->
        <property name="resourceLoaderPath" value="WEB-INF/templates"/>
        <!--这里配置velocity的其他属性,比如输入输出字符-->
        <property name="configLocation" value="classpath:velocity.properties"/>
    </bean>

    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="cache" value="false"/>
        <property name="prefix" value="" />
        <property name="suffix" value=".vm"/>
    </bean>

4、velocity.properties(这里只配置简单的编码,其他属性再另行配置)

#这里只配置简单的编码
input.encoding=UTF-8
output.encoding=UTF-8

5、然后编写个controller去调用模板代码吧,这里就不给出来了。

注意:WEN-INF下面的文件客户端不能直接引用,需要经过服务端去分发跳转。

四、velocity的简单用法

前后端共享基于context容器,可以在java代码中往里面存值,然后在vm文件中获取,这是velocity的基本用法。

1、变量:使用$声明变量,还可以用$取出velocityContext中的值。

##声明变量

#set($name = "hello") 
##引用变量

$name    ##不推荐
${name}  ##推荐

$!name    ##不推荐
$!{name}  ##推荐

注意:${var}获取变量时,若变量为空则原样输出。

           $!{var}获取变量时,若变量为空则变成空白输出。

2、循环

#foreach ( $item in $list )
    ---
    $item           ##每一项
    $velocityCount  ##当前次数
    ---
#end

 3、条件控制

#if (condition)
    ---
#elseif(condition)
    ---
#else
    ---
#end 

4、宏,可以理解为函数

##声明宏
#macro(sayHello $name)
    hello $name
#end


##使用宏
#sayHello("nick")

5、parse和include

#parse("header.vm")    ##解析后输出
#include("header.vm")  ##原样输出,没有经过velocity

#个人理解,若有错误的地方,请指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值