使用freemarker通常要把一些常用的html代码段封装成一个整体使用,这里就用到了freemarker的宏(macro)。

首先编写存放macro代码的模板文件,命名为function.ftl:

# 展示数据字典组成的下拉列表

# @param data 数据集合

# @param optionVal 选项value属性字段名,默认为id

# @param optionTxt选项文本属性字段名,默认为name

# @param name下拉列表name值

# @param value下拉列表value值

# @param nullable决定下拉列表是否提供空选项,默认true

# @param nullVal下拉列表空选项的取值,默认为空字符串

# @param nullTxt下拉列表空选项的文本,默认为空字符串

# @param classList下拉列表class值

# @param style下拉列表节点样式

# @param disabled设置下拉列表为禁用

#-->

name="${name}"

id="${id}"

class="${classList}"

style="${style}"

disabled >

${nullTxt}

option_txt = ("d." + optionTxt)?eval>

selected>${option_txt}

#macro>

完成后需要将这个文件配置到freemarker.properties中:

auto_import=/WEB-INF/freemarker/function.ftl as fn

这样function.ftl就会被自动加载,其中fn相当于命名空间。这里要注意的是,上面的路径其实受到freemarker设置的模板加载路径参数所影响,注意路径写正确,否则会报文件不存在异常。

然后就是使用这个宏,可以在ftl文件中这样使用已完成的宏:

如果只是在少数地方使用这个宏,也可以不配置auto_import,在使用的地方通过import指令来引入,如下:

注意文件路径需要使用引号括起来。

版权声明:本文为博主原创文章,未经博主允许不得转载。

freemarker 宏 调用java_freemarker宏的应用相关推荐

  1. java 怎么调用clojure_如何从Java调用Clojure宏?

    有没有从 Java调用Clojure宏? 这是我正在努力做的: RT.var("clojure.core","require").invoke(Symbol.c ...

  2. Java调用excel宏

    下载jacob-1.19.zip https://sourceforge.net/projects/jacob-project/ jacob-1.19-x64.dll放到C:\Windows\Syst ...

  3. 在python代码中调用vba宏的四种方法

    在python代码中调用vba宏 工作以python为主体,但是遇到了一些word操作的需求(详见上一篇),这个需求用word自带的功能会很容易实现,于是就想着能不能用python调用宏来处理. 网上 ...

  4. RationalDMIS 7.1 调用EASL_GET_T_V宏来将公差输出到CSV/EXCEL

    RationalDMIS变量数据区内置一个EASL_GET_T_V宏,此宏的功能是将公差计算结果的实际值.理论值.公差带/上下公差.超差值取成变量存储在变量数据区: 操作过程如下: 双击GET_T_V ...

  5. RationalDMIS 7.1调用EASI_GET_T_V宏来将公差输出到CSV/EXCEL

    RationalDMIS变量数据区内置一个EASI_GET_T_V宏,此宏的功能是将公差计算结果的实际值.理论值.公差带/上下公差.超差值取成变量存储在变量数据区: 操作过程如下: 双击GET_T_V ...

  6. makefile使用宏及用法$(宏标识符) $(cc)_宏编程的艺术

    微信限制:不能放置链接,代码样式比较奇怪,发布后不能更新... 推荐 阅读原文: 写在前面 之前写过几篇关于 C/C++ 宏 (macro) 和 C++ 元编程 (metaprogramming) 的 ...

  7. Excel VBA(宏):添加宏

    写在前面:1.编写宏,打开VBA,双击ThisWorkbook对当前工作薄进行编写宏:双击Sheet1,对整个sheet编写宏: 或者创建模块,在模块里,编写.调试代码. 打开VBA的方法见第一讲,结 ...

  8. java supplier_现代化的 Java (二十一)——宏和生成宏

    一般来说,我们会避免在应用项目中编写宏,无论是 c 那种比较简单的宏,还是rust 那种约束明确的,或者 Lisp 那种功能比较完善的宏机制.这主要是因为宏写起来比较困难,容易写错.项目开发通常来说有 ...

  9. php 定义宏函数,汇编语言宏函数

    宏函数与宏过程有相似的地方,它也为汇编语言语句列表分配一个名称.不同的地方在于,宏函数通过 EXITM 伪指令总是返回一个常量(整数或字符串).如下例所示,如果给定符号已定义则宏 IsDefined ...

最新文章

  1. 梦断代码阅读笔记01
  2. 成功解决TypeError: __init__() got an unexpected keyword argument 'indices'
  3. 电脑硬件知识学习_DIY电脑多年,这些硬件冷知识你们知道吗?
  4. 需求用例分析之备选流
  5. Swift使用CoreLocation,你必须要看这一篇
  6. Android7.1开机启动wifi adb
  7. 《java入门第一季》之面向对象(static关键字内存图解)
  8. IIS架设FTP服务器图文教程
  9. 翻译:web制作、开发人员需知的Web缓存知识
  10. idea启动 tomcat 原理解析
  11. 【安全狐】CVE-2015-5254_ActiveMQ反序列化漏洞复现
  12. pytorch log
  13. 2020年千兆路由器推荐 数码宅男来带路 赶紧M
  14. AD7797芯片驱动调试
  15. 基于极限学习机的预测、图像降噪和回归
  16. java 适配器_java里面的适配器是什么东西
  17. java剪刀石头布小游戏_JAVA实现“剪刀石头布”小游戏
  18. ThreadLocal 简单了解
  19. 名博是怎样炼成的——读后感
  20. linux var mqm权限,Linux MQ中间件/var/mqm文件系统结构与错误日志分析

热门文章

  1. Python每日一练——列表,元组和字典第十一关:del和pop的用法
  2. mac:截屏 自定义 格式,位置
  3. 安卓APP登录忘记密码以及通过邮箱找回密码的实现
  4. 分享自己使用python+pyserial+pyQT5写的串口调试助手
  5. 《可爱的Python》读书笔记(二)
  6. 使用IMS实现LTE的语音通话(VoLTE)
  7. java连接memcached_Memcached连接
  8. 微信小程序 上传图片
  9. 什么软件可以拍照翻译?4款让你沟通无障碍
  10. 0814 LVGL汉字引入