(三) Freemarker 常用指令

2024-06-12 08:48
文章标签 指令 常用 freemarker

本文主要是介绍(三) Freemarker 常用指令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一 常用指令

      1. assign: 自定义变量

      2. if else :流程判断指令

      3. list: 变量sequence 

      4. marco: 宏指令(自定义方法)

      5. import: 引入命名空间

      6. include:  嵌入文件指令


二 指令详解

【1. assign 指令】: 自定义变量
    1.1   自定义变量:
        <#assign hw = "hello,world"/>

    1.2  调用:用$ 调用
        hw = ${hw}
    
【2. if 指令】: 判断语句, if 相关的指令中不需要用 $ 号,直接可以从map 中获取元素
    2.1 if else 组合:
        <#if status == 0>
            status is 0
        <#else>
            status is not 0
        </#if>

    2.2 if elseif else 组合:
        <#if status ==0 >
            status = 0
        <#elseif status ==1>
            status = 1 
        <#else>
            status != 0 && status !=1
        </#if>
    
【3. list 指令】:list可以遍历sequence 类型的数据, 即 数组, List, Set
    1.1 foreach:
        <#list citys as city>
            ${city_index} --> ${city}
        </#list>

    3.2   获取遍历索引: 变量名_index 
        <#list names as name>
            ${name_index} --> ${name}
        </#list>

【4. macro 宏指令】, 类似于自定义方法
    1. 定义宏指令(定义方法)
        <#macro sayHello name1 name2>
            hello, ${name1} and ${name2}
        </#macro>

    2. 调用宏指令(调用方法)
        <@sayHello name1="zhangsan" name2="lisi"/>
    
    3. nested 指令: 代替调用宏指令时标签对之间包裹的内容
        <#macro hw>
            hello,<#nested>
        </#macro>
        <@hw>zhangsan,lisi,wangwu,zhaoliu</@hw>
        
【5. import 指令】: 引入命名空间:
    1. 引入命名空间:<#import "templateUtil.ftl" as util />
    2. 调用响应方法:<@util.printEmp employee/>
    3. 调用变量:${util.fileName}
        修改变量:<#assign fileName = "command.ftl" in util />
               ${util.fileName}
            
【6. include 】嵌入文件:
    1. 执行步骤: 
        1. 合并文件: 将被嵌入的文件的内容全部导入当前 文件
        2. 解析: 然后用freemarker 语法解析嵌入的文件片段
    2. 示例:以下是文件 hello.ftl 的文本内容:
       <#include "include.txt" />
    

三 测试结果:

[html]  view plain copy
  1. 二 指令详解  
  2.   
  3. 【1. assign 指令】: 自定义变量  
  4.     1.1   自定义变量:  
  5.         <#assign hw = "hello,world"/>  
  6.     1.2  调用:用$ 调用  
  7.         hw = ${hw}  
  8.       
  9. 【2. if 指令】: 判断语句, if 相关的指令中不需要用 $ 号,直接可以从map 中获取元素  
  10.     2.1 if else 组合:  
  11.         <#if status == 0>  
  12.             status is 0  
  13.         <#else>  
  14.             status is not 0  
  15.         </#if>  
  16.     2.2 if elseif else 组合:  
  17.         <#if status ==0 >  
  18.             status = 0  
  19.         <#elseif status ==1>  
  20.             status = 1  
  21.         <#else>  
  22.             status != 0 && status !=1  
  23.         </#if>  
  24.       
  25. 【3. list 指令】:list可以遍历sequence 类型的数据, 即 数组, List, Set  
  26.     1.1 foreach:  
  27.         <#list citys as city>  
  28.             ${city_index} --> ${city}  
  29.         </#list>  
  30.     3.2   获取遍历索引: 变量名_index  
  31.         <#list names as name>  
  32.             ${name_index} --> ${name}  
  33.         </#list>  
  34.   
  35. 【4. macro 宏指令】, 类似于自定义方法  
  36.     1. 定义宏指令(定义方法)  
  37.         <#macro sayHello name1 name2>  
  38.             hello, ${name1} and ${name2}  
  39.         </#macro>  
  40.     2. 调用宏指令(调用方法)  
  41.         <@sayHello name1="zhangsan" name2="lisi"/>  
  42.       
  43.     3. nested 指令: 代替调用宏指令时标签对之间包裹的内容  
  44.         <#macro hw>  
  45.             hello,<#nested>  
  46.         </#macro>  
  47.         <@hw>zhangsan,lisi,wangwu,zhaoliu</@hw>  
  48.           
  49. 【5. import 指令】: 引入命名空间:  
  50.     1. 引入命名空间:<#import "templateUtil.ftl" as util />  
  51.     2. 调用响应方法:<@util.printEmp employee/>  
  52.     3. 调用变量:${util.fileName}  
  53.         修改变量:<#assign fileName = "command.ftl" in util />  
  54.                ${util.fileName}  
  55.               
  56. 【6. include 】嵌入文件:  
  57.     1. 执行步骤:  
  58.         1. 合并文件: 将被嵌入的文件的内容全部导入当前 文件  
  59.         2. 解析: 然后用freemarker 语法解析嵌入的文件片段  
  60.     2. 示例:以下是文件 hello.ftl 的文本内容:  
  61.        <#include "include.txt" />  

这篇关于(三) Freemarker 常用指令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053748

相关文章

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP