java静态模板渲染技术_Java中使用velocity实现模板渲染

一、引言

展示层有三大典型技术,分别是JSP、freemaker和velocity。本文主要介绍velocity。

Velocity 主要使用场景如下:

Web 应用:开发者在不使用 JSP 的情况下,可以用 Velocity 让 HTML 具有动态内容的特性。

源代码生成:Velocity 可以被用来生成 Java 代码、SQL 或者 PostScript。

自动 Email:很多软件的用户注册、密码提醒或者报表都是使用 Velocity 来自动生成的。

转换 xml。

二、入门

velocity是一个基于java的模板引擎,与freemarker齐名,下面写一个velocity的hello world的demo。

maven依赖

org.apache.velocity

velocity

${velocity.version}

测试servelt

import org.apache.velocity.Template;

import org.apache.velocity.VelocityContext;

import org.apache.velocity.app.VelocityEngine;

import org.apache.velocity.runtime.RuntimeConstants;

import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;

import java.io.StringWriter;

import java.util.ArrayList;

import java.util.List;

/**

* ==Velocity之Hello Wordld入门程序==

*

* 首先,我们在代码中初始化了VelocityEngine这个模板引擎,对其设置参数进行初始化,

* 指定使用ClasspathResourceLoader来加载vm文件。然后我们就可以往VelocityContext这个Velocity

* 容器中存放对象了,在vm文件中我们可以取出这些变量,从而进行模板输出。

*/

public class VelocityTest {

private static final String VM_PATH = “template/velocity/helloworld.vm”;

public static void main(String[] args) {

// 初始化模板引擎

VelocityEngine velocityEngine = new VelocityEngine();

velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, “classpath”);

velocityEngine.setProperty(“classpath.resource.loader.class”, ClasspathResourceLoader.class.getName());

velocityEngine.init();

// 获取模板文件

Template template = velocityEngine.getTemplate(VM_PATH);

// 设置变量,velocityContext是一个类似map的结构

VelocityContext velocityContext = new VelocityContext();

velocityContext.put(“name”, “world”);

List list = new ArrayList();

list.add(“jack”);

list.add(“kitty”);

velocityContext.put(“list”, list);

// 输出渲染后的结果

StringWriter stringWriter = new StringWriter();

template.merge(velocityContext, stringWriter);

System.out.println(stringWriter.toString());

}

}

测试结果

hello world

1: This is jack

2: This is kitty

二、语法

2.1 变量

和我们所熟知的其他编程语言一样,Velocity 也可以在模板文件中有变量的概念。

变量定义

#set($name =“velocity”)

等号后面的字符串 Velocity 引擎将重新解析,例如出现以$开始的字符串时,将做变量的替换。

#set($hello =“hello $name”)

上面的这个等式将会给 $hello 赋值为“hello velocity”

变量的使用

在模板文件中使用

mathormula=%7Bname%7D%20%E8%BF%99%E7%A7%8D%E6%A0%BC%E5%BC%8F%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%9C%A8%E6%A8%A1%E6%9D%BF%E4%B8%AD%E5%90%8C%E6%97%B6%E5%8F%AF%E8%83%BD%E5%AE%9A%E4%B9%89%E4%BA%86%E7%B1%BB%E4%BC%BCname 和

bcba20eeab48rom=singlemessage

test1

测试2:访问localhost:8080/velocity/login

bcba20eeab48rom=singlemessage

test2

可以看到,成功实现了不同页面引用和不引用公共模板的功能。

四、参考资料

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91960 人正在系统学习中 相关资源:Ztrans丹诚软件Z39.50客户端-其它工具类资源-CSDN文库

来源:丹丹丹3

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月23日
下一篇 2021年1月23日

相关推荐