(三) 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

相关文章

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

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

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr