Velocity JAVA引擎模板 (八)宏

x33g5p2x  于2021-12-24 转载在 其他  
字(1.1k)|赞(0)|评价(0)|浏览(353)

本文是【宏语句】demo

java

/** * 宏 */
    @Test
    public void test8() throws IOException {
        //1 加载配置
        Properties properties = new Properties();
        properties.load(Test.class.getClassLoader().getResourceAsStream("velocity.properties"));
        Velocity.init(properties);

        //2 创建上下文对象
        VelocityContext context = new VelocityContext();

        //3 将数据对象添加到此上下文中
        context.put("list", Arrays.asList("a", "b", "c", "d"));

        //4选择模板
        Template template = Velocity.getTemplate("./src/test/resources/template/macro.vm");
        template.setEncoding("UTF-8");
        //5 合并模板和数据并输出
        StringWriter sw = new StringWriter();
        template.merge(context, sw);
        sw.flush();
        log.info("-----------------------------start------------------------------------");
        log.info(sw.toString());
        log.info("-----------------------------end------------------------------------");
    }

模板 macro.vm

## 定义 Velocimacro

#macro (showTree)
    #set($ints=[1..10])
    #if ($ints )
        #foreach ($int in $ints )
            $int
        #end
    #end
#end

#showTree()

------------------------------------------

#macro (showList $list)
    #if ($list )
        #foreach ($e in $list )
            $e
        #end
    #end
#end

#showList()
## #showList($list)

相关文章