`
huaxin803
  • 浏览: 108427 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

FreeMarker四种变量的用法

 
阅读更多
摘要: freemarker的变量可以分为四种,分别是数据模型的变量【root中的变量】,模板中的变量使用【<#assign>定义的变量】,局部变量【在指令中的变量】,循环变量【在循环中的变量】

freemarker的变量可以分为四种,分别是数据模型的变量【root中的变量】,模板中的变量使用【<#assign>定义的变量】,局部变量【在指令中的变量】,循环变量【在循环中的变量】


数据模型的变量【root中的变量】

直接从模型中给模板传值的变量就是数据模型的变量,它把变量的值放在一个map中,在模板中直接可以用。

@Test

publicvoidtest10() {

root.put("username","张三");

fu.print("10.ftl",root);

}

${username}

张三


模板中的变量使用【<#assign>定义的变量】

模板中的变量,是使用<#assign定义的变量,如果模板中定义的变量和模型中的变量名称一致,不是覆盖,而是隐藏

<#assignusername="李四">

<#--此时模板中的变量的名称和模型中的变量名称一致,不是覆盖,而是隐藏-->

${username}

李四

模型中的变量被隐藏后,可以使用.globals可以访问模型中的变量

<#--使用.globals可以访问模型中的变量-->

${.globals.username}

张三


局部变量【在指令中的变量】

使用local可以声明局部变量

<#macro test>

<#--

此时当调用该指令之后,会将模板中的变量username覆盖为王五

所以这种方式存在风险,所以一般不使用这种方式在指令中定义变量

-->

<#--<#assign username="王五"/>-->

<#--使用local可以声明局部变量,所以在marco中非特殊使用局部变量-->

<#local username="王五"/>

${username}

</#macro>

<@test/>

${username}

王五

李四


循环变量【在循环中的变量】

在list循环中定义的变量,循环中的变量只在循环中有效,也是一种临时的变量定义方式

<#list 1..3 asusername>

<#--循环中的变量出了循环就消失-->

${username}

</#list>

${username}

1

2

3

李四


本文链接:FreeMarker四种变量的用法,本文由huangyineng原创,转载请注明出处


分享到:
评论

相关推荐

    freemarker语法完整版

    Freemarker页面语法 A 概念 最常用的 3 个概念 sequence 序列,对应java 里的list 、数组等非键值对的集合 hash 键值对的集合 namespace 对一个ftl 文件的引用, 利用这个名字可以访问到该ftl 文件的资源 ...

    freemarker总结

    使用import指令导入库到模板中,Freemarker会为导入的库创建新的名字空间,并可以通过import指令中指定的散列变量访问库中的变量: ${my.mail} ${mail} 输出结果: &lt;p&gt;Copyright (C) 1999-2002 ...

    Freemarker使用手册、api、中文版教程

    FreeMarker官方参考文档总共有四份,它们分别是  Designer's Guide(网上已有翻译,主要从FreeMarker 的概念上介绍)  Programmer's Guide(本文档所以翻译的部分,主要从框架的设计方面介绍)  XML ...

    FreeMarker概述2008

     内建函数的用法类似访问散列的子变量,只是使用“?”替代“.”,下面列出常用的一些函数  字符串使用的:  html:对字符串进行HTML编码  cap_first:使字符串第一个字母大写  lower_case:将字符串转换成...

    超完整FreeMarker中文教程,代码

    什么是FreeMarker? ................................................................................................. 7 我们应该阅读什么内容? .............................................................

    FreeMark学习笔记

    FreeMarker的表达式输出变量时,这些变量可以是顶层变量,也可以是Map对象中的变量,还可以是集合中的变量,并可以使用点(.)语法来访问Java对象的属性.下面分别讨论这些情况 1,顶层变量 所谓顶层变量就是直接放在数据...

    FreeMarker 手册

    FreeMarker 手册 .......................................................................................................... 1 用于 FreeMarker 2.3.18 .......................................................

    Java学习指南(11) FreeMarker与MVC框架

    〖主要内容〗包含以下内容,具体以课程目录为准:* 开发环境与API* 基本类型的插值* Hash 与 Sequece类型的插值* 常用的 built-in 用法* 等指令的用法* 自定义函数 Method Variables * 共享变量 Shared ...

    FreeMarker中文指导手册

    第四章 其它 ........................................................................................................... 45 4.1 自定义指令 .................................................................

    FreeMarker模板引擎-其他

    你可以使用抽象(接口)方式表示对象(JavaBean、XML文档、SQL查询结果集等等),告诉模板开发者使用方法,使其不受技术细节的打扰 4、为Web准备 在模板语言中内建处理典型Web相关任务(如HTML转义)的结构 能够集成...

    spring in action英文版

    第一部分 Spring基础  第1章 开始Spring之旅  1.1 为什么使用Spring  1.1.1 J2EE开发者的一天  1.1.2 Spring的承诺  1.2 Spring是什么 ... 11.5.2 使用元数据保护方法  11.6 小结

    好用的代码生成源码

    类似ant可以变量引用,引用环境变量使用${env.JAVA_HOME}, 引用System.getProperties()直接引用 2.自动替换generator.properties中的句号(.)为反斜杠,设置key为key+"dir"后缀 示例: pkg=...

    涵盖了90%以上的面试题

    数组初始化的方式有哪几种 length属性和length()方法有什么区别 finally块中的代码什么时候被执行 Java中的异常处理机制的简单原理和应用。 java socket java序列化 JVM加载class文件的原理 双亲委派模型 为什么要...

    开源bbs源码java-latke-demo:Latke演示

    本示例使用了内嵌的 H2 作为数据库,数据库文件默认路径为 ~/latke-h2-demo/db,如有需要请在 local.properties 中进行修改。 示例 模板页面渲染 路径:/ 功能:渲染(输出 HTML)一个简单的 FreeMarker 页面模板 ...

    Spring in Action(第2版)中文版

    2.4.1四种自动装配类型 2.4.2混合使用自动和手动装配 2.4.3何时采用自动装配 2.5控制bean创建 2.5.1bean范围化 2.5.2利用工厂方法来创建bean 2.5.3初始化和销毁bean 2.6小结 第3章高级bean装配 3.1声明父...

    Spring in Action(第二版 中文高清版).part2

    2.4.1 四种自动装配类型 2.4.2 混合使用自动和手动装配 2.4.3 何时采用自动装配 2.5 控制Bean创建 2.5.1 Bean范围化 2.5.2 利用工厂方法来创建Bean 2.5.3 初始化和销毁Bean 2.6 小结 第3章 高级Bean装配 ...

    Spring in Action(第二版 中文高清版).part1

    2.4.1 四种自动装配类型 2.4.2 混合使用自动和手动装配 2.4.3 何时采用自动装配 2.5 控制Bean创建 2.5.1 Bean范围化 2.5.2 利用工厂方法来创建Bean 2.5.3 初始化和销毁Bean 2.6 小结 第3章 高级Bean装配 ...

    Java Web程序设计教程

    4.1.3sql使用方法 65 4.2jdbc 67 4.2.1jdbc概述 67 4.2.2jdbc驱动程序 68 4.2.3使用jdbc读取数据 69 4.3项目实战——存储图书信息 73 本章小结 78 课后练习 79 第5章struts2框架基础 80 5.1mvc框架 80 ...

    Beetl模板引擎-其他

    通过与主流模板引擎Freemarker,Velocity以及JSP对比,Beetl均远高于前面三个,这是因为宏观上,通过了优化的渲染引擎,IO的二进制输出,字节码属性访问增强,微观上,通过一维数组保存上下文,合并静态文本,通过...

    landingpage:RAKIP登陆页面

    用Ktor用Kotlin编写的后端在src / main / kotlin / server.kt 用FreeMarker编写的前端位于src / main / resources / templates / index.ftl 可以使用server.kt中的main方法测试该应用程序,并在端口8080上进行侦听...

Global site tag (gtag.js) - Google Analytics