博客:Java模板引擎性能对比  Thymeleaf性能偏低。

博客:Java模板引擎 FreeMarker   综合性的介绍,内容有点粗糙。

博客:JavaEE进阶——FreeMarker模板引擎

地址:https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81099114

这篇博客讲的很详细,可以认真学习下。

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

Java模板引擎之Freemarker

慕课网有视频资源,讲的很详细系统。本文仅为学习整理的笔记,如要学习,可到慕课网系统学习。

因为自定义指令,自定义方法等部分,本人并没有学懂。

慕课课程标题:Java模板引擎之Freemarker

慕课地址:https://www.imooc.com/coursewiki/801

如有侵权,请留言告知,本人会隐藏该博客记录。

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

Freemarker模板引擎
基于java语言
不是web框架,是个组件
1,定义一个模板文件
2,在freemarker模板文件中写,标记语言。
3,划定学习范围
4,定义学习程度和目标。
5,创建可行计划
6,maven+spring+freemarker项目
7,pom.xml文件依次查看
8,标签
#if
#list
?string()

可以尝试安装freemarker插件
可以通过start.spring.io中创建一个springboot项目
定义变量,输出变量:

使用assign 定义了一个变量var,赋值为:hello  spring  boot

取值方法:

常见的取值指令:

2)

基本取值:

后台代码:

前台代码:

其他数据类型:

boolan类型比较特殊,如果需要在页面展示,可以string转化下,不能直接在页面输出。
freemarker有配置文件,可以在配置文件中配置常见的format

常见格式化配置:

日期类型比价特殊:

?String()这是freemarker的语法。

变量为null,怎么取值呢?会报错!取值后面加上英文!

 默认值:

输出不存在的变量,后台没有定义的:也需要加!

逻辑-赋值和运算

变量运算如:

封装类型:

假如对象和对象的属性都可能为null

假如两个对象都可能为null,整体加上括号,添加英文!

也可以输出富文本:
按普通的 输出值写就可以。brief字符串中包含html代码

假如只想输出文本,不想输出富文本:

需要在使用指令:?html

List集合的遍历

后台代码:

前台代码:

集合Map的遍历

后台代码:

前台代码:既有取key,又有取值

if表达式

else  if,else标签是放在<#if></#if>标签内部的。

if   else if    else

条件判断,会结合list
判断list是否为空,是否存在

判断list中的数据

另一种写法:

检查变量是否存在

总结:进行判断使用:两个??或者?exists

多条件判断:

逻辑或

逻辑与

复合逻辑或

逻辑非

swith语法:

需要加上break,否则会穿透

switch支持字符类型:

新的主题

字符串的操作,集合的操作
自定义函数
自定义指令

自定义函数和自定义指令继承的接口不同

对字符串的操作

拼接和截取:

长度、大小写、indexOf,freemarker没有

替换:

lastIndexOf

自定义函数,sort_int是已经定义好的函数,freemarker的语法风格都是下划线来隔开单词

后台代码:

具体代码:

List排序,内建函数,常用指令:?sort排序

倒序指令,?reverse

长度指令:

获取下标:

自定义指令:

自定义指令以@开头,自定义指令@role,两个入参,user和role

两个返回值,入参是key-value形式,空格隔开

入参和返回值之间用分号;隔开
多个返回值用逗号隔开
需要在xml中配置

后台代码:

以上代码没有截取完整,这一部分,每太高清楚,还需要看教程。

实现顶层接口,实现execute方法
参数都要转为freemarker定义的类型

freemarker常用内建函数:

处理数字的内建函数,处理字符串的内建函数

处理数字的内建函数:

处理List的内建函数:

其他内建函数:

代码演示内建函数,因为这些东西的使用,不用代码难以描述清楚:

字符串分割:

日期转换

数字和list内建函数:

其他内建函数:

高级内容

宏指令

函数指令

图2:

图3:

通过代码讲解:

代码1:定义指令test,一个html片段

代码2:定义带参数的macro指令,同时调用

代码3:有默认参数的macro指令

代码4:有多个参数的macro指令

内容不同的代码片段,nested语法:nested有点像占位符

函数:

回顾和知识总结:

java-Freemarker-模板引擎学习的更多相关文章

  1. Java 前端模板引擎学习:thymeleaf 模板引擎

    模板引擎接口 ITemplateEngine 一.后台数据与外部数据 1.处理后台数据 $表达式是个变量表达式,用于处理在  request parameters and the request, s ...

  2. Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化

    模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...

  3. Java之利用Freemarker模板引擎实现代码生成器,提高效率

    https://blog.csdn.net/huangwenyi1010/article/details/71249258  java模板引擎freemarker代码生成器 更多 个人分类: 一步一步 ...

  4. java开源模板引擎

      Velocity  Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义 ...

  5. Volecity模板引擎学习笔记

    转自:https://blog.csdn.net/reggergdsg/article/details/50937433 最近项目中用到了volecity模板,这里做一下笔记,学习中...相比较 Fr ...

  6. Spring Boot 2.0 整合 FreeMarker 模板引擎

    本篇博文将和大家一起使用Spring Boot 2.0 和FreeMarker 模板引擎整合实战. 1. 创建新的项目 2. 填写项目配置信息 3. 勾选web 模块 4. 勾选freemarker模 ...

  7. freemarker模板引擎的使用

    freemarker是一套前端模板引擎,在使用时,要先在web项目中添加freemarker.jar的依赖. 我在这里主要演示spring-mvc整合freemarker模板引擎.项目案例的文件包结构 ...

  8. Spring Boot☞ 使用freemarker模板引擎渲染web视图

    效果图 代码 package com.wls.integrateplugs.hello.controller; /** * Created by wls on 2017/8/24. */ import ...

  9. SpringBoot获取Freemarker模板引擎,生成HTML代码

    今天用Ajax异步添加评论,加载Freemarker模板引擎,生成模板模块 1.新建Freemarker模板 <li id="${comment.oId}"> < ...

  10. FreeMarker模板引擎

    现在开发的项目,也是基于SOA架构,每个功能接口都是用WebService实现,Web服务的通信协议就是用XML来传输. 以前写WebService都是自动生成XML,没想到这项目竟然要自己定义XML ...

随机推荐

  1. windows端口映射

    1. 查看netsh interface portproxy show all 2. 添加端口映射转发netsh interface portproxy add v4tov4 listenaddres ...

  2. 整合AD RMS与EX 2010。

    1.点击开始菜单, 选择所有程 序,展开 Mi cros oft  Excha nge  Server  2010 ,打开Excha nge Ma na gement Cons ol e,选择收件人配 ...

  3. flask的cookies操作

    from flask import Flask,request,Response app = Flask(__name__) @app.route('/') def hello_world(): re ...

  4. 关于MYSQL安装踩的坑

    前提:本人装的版本是mysql-8.0.18-winx64,win10系统,如果你安装的是其他版本的MYSQL,语法会跟下面有些许区别: 一,安装 https://dev.mysql.com/down ...

  5. A New 3-bit Programming Algorithm using SLC-to-TLC Migration for 8MBs High Performance TLC NAND Flash Memory

    背景 1.2012年左右的数据SLC.MLC.TLC闪存芯片的区别:SLC = Single-Level Cell ,即1bit/cell,速度快寿命长,价格超贵(约MLC 3倍以上的价格),约10万 ...

  6. kafka修改topic副本数

    工作案例: 大数据开发用系统脚本自动在kafka建topic,检查后才发现副本数只有1个,存在数据丢失的风险.需要立刻把副本数改为3个. 开始干活,首先想到的是下面的命令: ${BIN_PATH}/k ...

  7. [bzoj1776][Usaco2010 Hol]cowpol 奶牛政坛_倍增lca

    [Usaco2010 Hol]cowpol 奶牛政坛 题目大意: 数据范围:如题面. 题解: 第一想法是一个复杂度踩标程的算法..... 就是每种政党建一棵虚树,然后对于每棵虚树都暴力求直径就好了,复 ...

  8. 【转帖】Ubuntu : apt-get 命令

    Ubuntu : apt-get 命令 https://www.cnblogs.com/sparkdev/p/11339231.html ubuntu的 我一直不熟 感谢作者 总结的这么好 在学习一下 ...

  9. shell 字符

    Shell 中的符号: 在shell中有很多符号代表了一些意思,重点说说 键盘上的符号在shell中的意义. 通配符: ~ 匹配家目录 ?  匹配单个字符.( ?之匹配单一的一个字符.x11 这种的就 ...

  10. PAT B1041 考试座位号(15)

    解题要点: 使用结构体保存准考证号,考试座位号 试机座位号作考生数组下标 通过试机座位号获取考生号,座位号 考生号使用long long存放 //课本AC代码 #include <cstdio& ...