httl语法

HTTL (Hyper-Text Template Language) 是一个高性能的开源JAVA模板引擎, 适用于动态HTML页面输出, 可替代JSP页面, 指令和Velocity相似。个人觉得httl的语法要简洁很多,使用更方便,更易上手。

 

 

1.1基本语法:

ex:

<html>

    <body>

        #if(books)

        <table>

            #for(Book book : books)

            <tr>

                <td>${book.title}</td>

            </tr>

            #end

        </table>

        #end

    </body>

</html>

 

1.2注释语法:

指令两边可以套上HTML注释,以免干扰原生HTML页面。

注:HTTL在解析时,将自动去除指令边上的HTML注释符。(缺省已开启过滤)

##行注释

#**#块注释

1.3指令

1.3.1输出指令

${输出变量}输出表达式的计算结果,并进行过滤,比如:过滤变量中的HTML标签。

$!{输出变量}原样输出表达式的计算结果,不进行任何过滤,通常用于输出HTML片段。

1.3.2变量指令

#set(类型 变量)

声明变量的类型,模板内部其它变量类型基于此类型推导

注:暂时只支持List和Map的一级泛型,多级泛型能解析,但不能推导。

如果有全局的变量,可以用配置全局导入变量类型声明,就不需要在每个模板声明:import.variables+=User loginUser

1.3.3条件指令

#if(条件)

语句

#elseif(条件)

语句

#else

语句

#end

语法与java代码类似

 

 

1.3.4循环指令

#for(类型 变量:变量)

语句

#end

迭代表达式产生的集合,以集合中的每项值,重复输出指令所包含的块

1.3.5模板指令

#macro模板片段

将指令块封装成可复用的模板片段,它可当作变量传递,可重复执行输出,可被继承覆盖。

1.3.6注释指令

##行注释

#**#块注释

 

1.3.7转义指令

#[]#不解析块

原样输出模板内容,用于输出纯文本内容,或批量转义块中的特殊符。

\#\$特殊符转义

原样输出指令特殊符,用于输出纯文本内容。

 

1.4httl.properties文件配置:

配置模板的根目录:

template.directory=/META-INF/templates

 

配置模板加载缺省编码,缺省为UTF-8:

input.encoding=UTF-8

output.encoding=UTF-8

 

配置是否允许热加载,缺省为false:

Reloadable=false

开启热加载后,模板引擎在getTemplate()时会检查文件的lastModified时间,如果比上次加载的时间新,就重新加载。

请注意:旧的模板不会被卸载,经常改文件会导致内存perm区越来越大,只能在开发阶段使用。

 

使用fastjson进行转码,需配置:

json.codec=httl.spi.codecs.FastjsonCodec

 

导包配置:

import.packages+=com.foo,com.bar

 


Demo:

<!DOCTYPE html>

<html>

    <head>

    <meta charset="UTF-8">

    <title>项目列表</title>

    </head>

<body>

<!--变量指令,声明变量的类型,模板内部其它变量类型基于此类型推导-->

#set(List<InfoCarNews> infoCarNewsList)

<table >

<!--循环指令,迭代表达式产生的集合,以集合中的每项值,重复输出指令所包 含的块-->

#for(InfoCarNews carNews:infoCarNewsList)

                <tr>

<!--条件指令

:是带过滤的输出指令、是不带过滤的输出指令,不进行过滤的指令通常输出HTML片段-->

#if(carNews.category == 1)<td >类别1</td>

#elseif(carNews.category == 2)<td >类别2</td>

#else<td >无类别</td>

#end

</tr>

#end

        </table>

    </body>

</html>


httl模板网址:http://httl.github.io/zh/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值