velocity入门示例

 

下面是一个简单的实例:

 

java代码:

 

package com.ali.vm;

 

import java.io.StringWriter;

import java.math.BigDecimal;

import java.util.Date;

 

import org.apache.velocity.app.VelocityEngine;

import org.apache.velocity.Template;

import org.apache.velocity.VelocityContext;

public class Velocitytest{

    public static void main( String[] args )throws Exception{

        /* first, get and initialize an engine */

        VelocityEngine ve = new VelocityEngine();

        ve.init();

        /* next, get the Template */

        Template t = ve.getTemplate( "test.vm","utf-8" );//注意test.vm要放置到项目根目录,而不是classpath根目录

        /* create a context and& nbsp;add data */

        VelocityContext ctx = new VelocityContext();

        Product pro = new Product();

pro.setDate(new Date());

pro.setName("zhangsan");

pro.setPrice(BigDecimal.valueOf(343424.34));

ctx.put("title", "test velocity");

ctx.put("content", "test success");

ctx.put("product", pro);

        StringWriter writer = new StringWriter();

        t.merge( ctx, writer );

        /* show the World */

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

    }

}

test.vm代码:

 

 

#set($foot="foot.vm")

#include("head.vm",$foot)  ##使用include指令,可以包含多个文件,但是其中不能有vtl指令

#parse("varible.vm")             ##使用parse指令,可以包含1个文件,可以有vtl指令

<head>

        <title>${title}ishere</title>  ##使用正式引用方式,否则变量与后面的连在一起了。

    </head>

<body>

$!begion           ##使用静态引用,这样当begion没有赋值时,可以不显示

#set($email="yuyd@163.com")

$email

/$email  ##使用转义字符,输出原内容

//$email

///$email

#if($a!=1)true#else no#end

<div>person:$person</div>

<div>name:${product.name}</div>   ##使用正式引用方式,把属性一起扩进去

<div>price:$product.price</div>

<div>date:$product.date</div>

<div>name2:$p2.name</div>

<div>price2:$p2.price</div>

<div>date2:$p2.date</div> 

<div>address2:$p2.address</div> 

#set( $p3 = $product)

#set( $p2.name = "wanglaojie")  ##输出与p1不同,说明解析方式是顺序解析。

<div>name:$product.name</div>

#set($array = ["aa","bb","cc"]) ##数组赋值

#set($map = {"aa":"aa++","bb":"bb++"}) ##map赋值

#foreach($i in $array)  ##循环

#set($value=false) ##由于为空时没有赋值,所以需要先将值设为false,这样如果为空,则可以检测出来

#set($value=$map.get($i))

#if($value) ##if指令

<div>$i:$value</div>

#else    ##else

<div>$i:no value</div>

#end

#end

#set($literal1 ="$product.name")  ##使用"",如果文本中有变量,则会被解析

$literal1

#set($literal2 ='$product.name')  ##使用'',如果文本中有变量,则不会被解析

$literal2

#literal()  ##使用literal() end,如果文本中有变量,不会被解析,适用于多行文本

$product.name 

#end

#macro(table $color $list) ##定义宏 带两个参数

<table>

 #foreach($i in $list)

   <tr><td>$i</td></tr>

   #end

</table>

#end

#table("red",["123","456"])  ##调用宏,并传入参数

    </body>

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值