java模板引擎生成html_Java使用 VelocityEngine模板引擎快速生成HTML等各种代码

https://blog.csdn.net/icannotdebug/article/details/79725297

一、简介

Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上

说白了就类似于jsp,java中定义对应的对象,模板载入后,可以对象信息动态加载入模板

二、使用方式

1、引入pom(老生常谈)

org.apache.velocity

velocity-engine-core

2.0

2、创建模板文件(Hellovelocity.vm)

#set( $iAmVariable = "good!" )

Welcome $name to velocity.com

today is $date.

#foreach ($i in $list)

$i

#end

$iAmVariable

3、编写测试main

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.Date;

import java.util.List;

/**

* @author: 李智龙

* @date: 2018/3/28

*/

public class HelloVelocity {

public static void main(String[] args) {

VelocityEngine ve = new VelocityEngine();

ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");

ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());

ve.init();

// 载入(获取)模板对象

Template t = ve.getTemplate("hellovelocity.vm");

VelocityContext ctx = new VelocityContext();

// 域对象加入参数值

ctx.put("name", "李智龙");

ctx.put("date", (new Date()).toString());

// list集合

List temp = new ArrayList();

temp.add("1");

temp.add("2");

ctx.put("list", temp);

StringWriter sw = new StringWriter();

t.merge(ctx, sw);

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

}

}

4、打印结果

Welcome 李智龙 to velocity.com

today is Wed Mar 28 11:03:04 CST 2018.

1

2

good!

三、使用模板的目的

如果说使用模板生成java代码,或者开发对应的代码,目前有很多封装好的更好用的开源框架,

使用Velocity自己编写一个适用的框架也是可以的(很蛋疼吧)。

不过个人觉得Velocity最好的使用场景,是在文件模板的生成方面,现在有很多场景需要打印报表,

生成对应的文件,而Velocity便是一个过渡的比较好用的轻量的插件。后面也会提供相应的例子

Velocity模板引擎实战:动态生成HTML、Word、Excel等报表

四、模板的基本语法

1、定义变量

#set($name =“Jackie”)

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

Jackie赋值给$name,此时$hello的值为hello Jackie

2、变量使用

模板文件可以使用name或

{name}定义变量,建议使用后者,name和

names 的两个变量,如果不选用大括号的话,引擎就没有办法正确识别$names 这个变量。

3、循环

#foreach($element in $list)

This is $element

$velocityCount

#end

4、条件语句

#if(condition)

...

#elseif(condition)

#else

#end

5、关系操作符

AND、OR 和 NOT 操作符,分别对应&&、||和!

6、函数

#macro(macroName arg1 arg2 …)

...

#end

// 对应函数

#macroName(arg1 arg2 …)

示例

#macro(sayHello $name)

hello $name

#end

#sayHello(“velocity”)

7、解析和引入模板

temp.vm 文件:

#set($name =“velocity”)

parse.vm:

#parse(“temp.vm”)

输出结果为:velocity

include.vm:

#include(“temp.vm”)

输出结果为:#set($name =“velocity”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值