Velocity的使用(上)

简介: Velocity的使用

一. Velocity 的介绍


Velocity 的官方网址: https://velocity.apache.org/


与 FreeMarker 一样,也是模板引擎。


二. Java 使用Velocity


二.一 前期准备


创建一个 Maven 项目, 在 pom.xml 中添加 依赖


 <dependencies>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>
        <!--测试junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!--lombok依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.16</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>


9649ea7c0eecd33b5540b14e43fce186.png


二.二 模板开发


这儿不与 Web 进行关联,不采用页面展示, 采用控制台输出。


二.二.一 基本信息展示


二.二.一.一 基本信息模板 vm


创建 basic.vm 文件


## Velocity Hello World
<html>
<body>
    ## followed by
    Hello,我是你们的老朋友,${name}
    ## 放置读取的信息.
    #set($name="周小欢")
    #*
     如果同时设置的话,以 #set 为主。
    *#
    Hello,介绍一个新的朋友,${name}
    ## 放置普通的对象信息
    ${info.name} 的年龄是 ${info.age}
</body>
</html>


有基本的信息 name, 有对象的信息 info.name 和 info.age


可以通过 set 设置一个新的属性。


二.二.一.二 基本信息开发


    @Test
    public void basicFill() throws Exception{
        //1. 初始化模板引擎
        VelocityEngine ve=new VelocityEngine();
        //2. 设置相应的属性信息
        ve.setProperty(RuntimeConstants.RESOURCE_LOADER,"classpath");
        ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
        //3. 进行初始化
        ve.init();
        //4.获取模板文件
        Template template=ve.getTemplate("basic.vm","utf-8");
        //5.设置变量
        VelocityContext root=new VelocityContext();
        root.put("name","岳泽霖");
        Map<String,Object> info=new HashMap<>();
        info.put("name","YJL");
        info.put("age",26);
        root.put("info",info);
        //6.进行合并,调用模板的 merge 方法, 将其进行填充。
        StringWriter stringWriter=new StringWriter();
        template.merge(root, stringWriter);
        System.out.println("输出信息值:"
        +stringWriter.toString());
    }


fe9ea90c293b56d271f6c158c9852c4f.png


二.二.二 If 条件语句 展示


二.二.二.一 If 条件语句 vm


创建 if.vm 文件


## 放置if
##  可以使用条件表达式,进行处理。
#if(${age}>120)
年龄输入错误
#end
你的性别是:
#if(${sex}=='男')
  男性
#else
   女性
#end
你的成绩是:
#if(${score}>90)
#elseif(${score}>80)
#elseif(${score}>70)
#elseif(${score}>60)
#else
#end


相关文章
|
JavaScript 前端开发
使用typora生成时序图
掌握生产力工具,使用typora和mermaid生成时序图
871 0
|
Linux 网络安全
Linux 服务器的21/22端口被禁止,如何解决?
22端口作为远程登录服务器的知名端口,如果22端口暴露在互联网必然会引起攻击。
1369 0
|
设计模式 负载均衡 Java
3. 7 Spring Cloud 网关 Zuul 集成 Nacos 注册中心| 学习笔记
快速学习 3. 7 Spring Cloud 网关 Zuul 集成 Nacos 注册中心。
|
JavaScript Java 关系型数据库
Springboot+vue的应急救援物资管理系统,Javaee项目,springboot vue前后端分离项目。
Springboot+vue的应急救援物资管理系统,Javaee项目,springboot vue前后端分离项目。
|
JavaScript
Vue父组件调用子组件的方法并传参的两种方式(用$refs.refName.functionName、window.function)
Vue父组件调用子组件的方法并传参的两种方式(用$refs.refName.functionName、window.function)
Vue父组件调用子组件的方法并传参的两种方式(用$refs.refName.functionName、window.function)
|
存储 Java Linux
【Linux专题_02】Linux安装JDK1.8
【Linux专题_02】Linux安装JDK1.8
468 1
|
Java
MQTT(EMQX) - Java 调用 MQTT Demo 代码
MQTT(EMQX) - Java 调用 MQTT Demo 代码
469 0
MQTT(EMQX) - Java 调用 MQTT Demo 代码
|
Java 编译器
Error:java: Compilation failed: internal java compiler error
Error:java: Compilation failed: internal java compiler error
1974 1
|
XML Java Maven
探索Velocity模板引擎:灵活的模板生成工具
在现代的应用开发中,生成动态内容的需求非常常见。Velocity模板引擎作为一款灵活的模板生成工具,可以帮助我们将数据与模板结合,生成各种文本、HTML、XML等格式的内容。本文将深入探讨Velocity的基本概念、特点,以及如何在实际应用中使用它进行模板生成。
713 0
|
SQL Java Spring
Spring Data JPA之JpaSpecificationExecutor复杂动态查询实例
Spring Data JPA之JpaSpecificationExecutor复杂动态查询实例
244 0