Java模板引擎之Freemarker
Freemarker定义: 一款模板引擎
Freemarker是一个web图层组件不是web框架,解析服务端数据到页面
小例子:
<#list 集合 as item> list标签对集合进行遍历
<li>${item.name}</li>
<li>item.birthday?string('yyyy-MM-dd')}</li> 日期格式化,"?string"表示调用方法格式化时间
java中常用的数据模型:
取值指令:
对于boolean类型的变量,在页面中显示的是yes,因为显示true会让页面报错。这需要在配置文件中进行转换配置。
Freemarker支持的是java.sql.Date,可以直接输出,如果使用java.util.Date会报错,
可以这样处理:1 使用java.sql.Date转换 2 在模板中使用?string('yyyy-MM-dd')进行转换
${var!默认值}
默认值只在null或变量不存在时输出
定义一个变量: <#assign var=value>
${var?html}
对var变量值里的html标签进行转义,并输出富文本
富文本指html标签和文
!判断最近变量是否存在。不存在就不输出。可以避免错误信息 例如取自定义变量的值:${user.name!}这样只能判断name是否存在,如果user也不存在的话就会报错, 但我们可以用()把user.name包起来,${(user.name)!} 对集合进行遍历:
对Map进行遍历:
if语法:
对myList判断是否为空,如果空的话就不走if内部的这段代码了。下面两个效果一样。
switch语法:
string 基本操作指令:
自定义指令: 自定义指令用@,内建指令用#,user 和role是入参,键值对的形式,不用,隔开。result1和result2是出参,用,隔开。
还要在配置文件里进行配置:
第三步:实现接口
freemarker常用内建函数:
Java模板引擎之Freemarker的更多相关文章
- Java模板引擎之Freemarker 学习笔记 一
什么是Freemarker Freemarker是模板引擎,不是Web框架,只是视图层的组件,官网是 https://freemarker.apache.org/ Freemarker原理 数据模型+ ...
- Java模板引擎之freemarker简介
- Java模板引擎Freemarker
Java模板引擎Freemarker 1.取值(插值)指令 2.逻辑指令:if.switch 3.字符串.集合操作 4.自定义函数 5.list排序内建函数.常用指令 6.自定义指令 7.freema ...
- Beetl学习总结(1)——新一代java模板引擎典范 Beetl入门
1. 什么是Beetl Beetl目前版本是2.7.0,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点.使得开发和维护模板有很好的体验.是新一代的模板引擎. ...
- jetbrick,新一代 Java 模板引擎,具有高性能和高扩展性
新一代 Java 模板引擎,具有高性能和高扩展性. <!-- Jetbrick Template Engineer --> <dependency> <groupId&g ...
- Java 模板引擎 jetbrick-template
jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性. 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板. 指令和 ...
- Java模板引擎 HTTL
新一代java模板引擎典范 Beetl http://www.oschina.net/p/httl HTTL(Hyper-Text Template Language)是一个高性能的开源JAVA模板引 ...
- httl开源JAVA模板引擎,动态HTML页面输出
HTTL(Hyper-Text Template Language)是一个适用于HTML输出的开源JAVA模板引擎,适用于动态HTML页面输出,可用于替代JSP页面,它的指令类似于Velocity. ...
- springboot:Java模板引擎Thymeleaf介绍
Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎.类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用 ...
随机推荐
- 关于Q-LEARNING的优化
Q-LEARNING 最后得到的一个图寻路最佳路径:---直接转化为图关于多顶点深度遍历热度传递 V(level+1) = 0.8 * Max(Vi(level)) 这个方法可以在O时间收敛 原方 ...
- JavaScript ES6格式化字符串方法
js想要动态更新文本内容,在ES5中没有格式化字符串的方法,在ES6中是有字符串格式化的方法的. 使用左上角数字1旁边的符号定义字符串.先定义好需要拼接的字符串,在字符串内部使用 ${变量名} 进行拼 ...
- 【c++】函数默认参数
c++ Prime Plus sixth edition page274 如何设置默认值呢?必须通过函数原型. 只有原型指定了默认值.函数定义与没有默认参数时完全相同. 参考 1. http://ww ...
- Git忽略文件权限
有时 git diff 执行显示文件内容没变化,但是git status却是一片姨妈红: 原因是文件的权限,被chmod变化了,这种变化也被 diff 识别出来了,git diff某个文件类似如下: ...
- c# 休眠后 定时唤醒
源码见附件,执行唤醒功能前需要先对电源进行设置如下图: 源码
- 将js和css文件装入localStorage加速程序执行
原理如下: 一次批量加要加载的文件存入数组,采用Ajax方式异步载入各个文件,然后采用循环方式逐个执行下载下来的Js或者Css文件,如果已经被缓存(localStorage)的则省略下载过程. 由于J ...
- [LeetCode&Python] Problem 383. Ransom Note
Given an arbitrary ransom note string and another string containing letters from all the magazines, ...
- 安卓与Unity交互之-Android Studio创建Module库模块教程
安卓开发工具创建Module库 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...
- ZOJ - 4089 :Little Sub and Isomorphism Sequences (同构 set)
Little Sub has a sequence . Now he has a problem for you. Two sequences of length and of length are ...
- js 调用 手机 相机摄像机麦克风
https://www.cnblogs.com/avon/p/5996368.html