velocity模板引擎学习(springboot整合)

Velocity 是一个基于Java的模板引擎(template engine). 它可以让视图的设计者在web 页面中引用java 代码中定义的数据对象和命令。

项目架构:
在这里插入图片描述
注意:springboot版本使用1.4.7版的,因为高版本的springboot不支持velocity了

添加依赖:在pom.xml文件中添加对web项目支持和Velocity整合的依赖

org.springframework.boot
spring-boot-starter-web



org.springframework.boot
spring-boot-starter-velocity

在application.yml添加配置
spring:
velocity:
cache: false
charset: utf-8
check-template-location: true
content-type: text/html
enabled: true
prefix: /templates/
suffix: .vm
toolbox-config-location: /toolbox.xml
(最后一个是配置一个toolbox.xml配置文件,配置日期转换等)

controller层添加测试:
在这里插入图片描述
在templates文件夹下添加index.vm页面
在这里插入图片描述
上图中日期的处理需要配置一个toolbox.xml配置文件,内容如下:

<?xml version="1.0" encoding="utf-8" ?> DateTools application org.apache.velocity.tools.generic.DateTool 注意:图中的DateTools一定要和配置中的key一致 效果图如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200722171452820.png) **统一异常处理页面编写** controller层添加统一异常出处理类![在这里插入图片描述](https://img-blog.csdnimg.cn/20200722171638175.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQyMDY2Mw==,size_16,color_FFFFFF,t_70) 在templates文件夹下添加500.vm文件用来展示错误信息 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200722171805973.png) 在服务端出现异常后程序就会执行exceptionhandler方法的内容,并返回500.vm页面

velocity中常见的语法
在这里插入图片描述
在上图中添加了字符串、对象集合、map等不同的数据类型,然后编写list.vm文件,内容如下:

字符串类型

hello! $!name(#if($!sex == '1')先生#else女士#end),$!msg
    <h1>set操作(定义变量)</h1>
    #set($su = '你好,我是定义的变量')
    $!su

    <h1>普通的for循环</h1>
    #foreach($!string in $!strings)
        $!string,
    #end

    <h1>对象for循环</h1>
    <table border="1">
        <tr><td>编号</td><td>姓名</td><td>年龄</td></tr>
        #foreach($!people in $!peopleList)
            <tr>
                <td>$!people.id</td>
                <td>$!people.name</td>
                <td>$!people.age</td>
            </tr>
        #end
    </table>

    <h1>map集合for循环</h1>
    <table border="1">
        <tr><td>编号</td><td>姓名</td><td>年龄</td></tr>
        #foreach($!people in $!peopleMap.keySet())
            <tr>
                <td>$!peopleMap.get($people).id</td>
                <td>$!peopleMap.get($people).name</td>
                <td>$!peopleMap.get($people).age</td>
            </tr>
        #end
    </table>

    <h1>include包含页面</h1>
    #parse("index.vm")
    #include("index.vm")
</body>
效果如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200722172247991.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQyMDY2Mw==,size_16,color_FFFFFF,t_70) 比较常用的velocity语法介绍到这里了,最后对比一下#parse 和 #include的区别: #parse 和 #include 指令的功能都是在外部引用文件,而两者的区别是,#parse 会将引用的内容当成类似于源码文件,会将内容在引入的地方进行解析,#include 是将引入文件当成资源文件,会将引入内容原封不动地以文本输出。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值