zoukankan      html  css  js  c++  java
  • java-Freemarker-模板引擎学习

    博客: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有点像占位符

    函数:

    回顾和知识总结:

  • 相关阅读:
    SQL整理5
    SQL整理1 数据类型
    SQL整理2
    JavaScript 的DOM操作
    JavaScript 数据类型
    JavaScript
    CSS样式表
    sqlserver数据库 提纲
    Python基础第十二天:二分法算法
    Python基础第十一天:递归函数
  • 原文地址:https://www.cnblogs.com/Tpf386/p/11157707.html
Copyright © 2011-2022 走看看