`

FTL自定义函数及宏

阅读更多

1.          可以在FTL中定义函数,调用context(一个全局类)中某些对象的方法,

例如:${getCode(bean.paramtype)},getCode就是自定义的一个函数:

                   <#function getCode id=0>

                   <#return _global.getCodelistName(id)>

</#function>

调用context中_global对象的一个getCodelistName方法。

_global定义:

                  public static void initialize(ServletContextEvent event){

                            event.getServletContext().setAttribute("_global", Global.instance());

                  }

2.          可以在FTL中定义宏,把一些通用的、使用率比较高的FTL代码抽象出接口,提高复用性和代码整洁度,

例如:<@options type="paramtype" value=property.id />,@options是自定义的一个宏,有type和value两个参数,用它们来生成<option>列表。

<#macro options type value=0>

<#list _global.getSysCodelists(type) as item>

<option value="${item.id}" ${(item.id==value)?string("selected","")}>

${item.listname}

</option>

</#list>

</#macro>

分享到:
评论

相关推荐

    freemarker 介绍

    `&lt;#...&gt;`通常用来包含控制结构、指令或者宏,而`&lt;@.../&gt;`用于调用自定义函数或宏。 - `condition`在`&lt;#if&gt;`、`&lt;#elseif&gt;`和`&lt;#else&gt;`中定义条件判断,根据条件决定是否输出某个部分。 - `...

    freemarker.jar下载

    此外,`&lt;#macro&gt;`定义宏,可以创建自定义函数。模板继承则允许子模板继承父模板的结构,只覆盖需要改变的部分,保持整体模板的一致性。 6. 自定义函数和标签库 Freemarker支持自定义函数,通过`&lt;#function&gt;`定义。...

    基于Freemarker模板的代码生成器前台页面模板文件

    此外,Freemarker支持自定义函数和指令,可以扩展其功能,满足复杂的需求。 为了优化开发体验,往往会有专门的代码生成器工具,它们能够根据数据库表结构自动创建这些FTL文件的初始结构,开发者只需在此基础上进行...

    freemarker 实现宏分页

    宏的参数可以像函数参数一样定义,例如,可以定义一个参数`currentPage`表示当前页数,另一个参数`totalPages`表示总页数。 ```html ... ``` 2. **宏调用**: 在需要的地方,我们可以调用这个宏,并传入...

    freemarker培训课件

    - **求平均值函数**:展示如何定义和使用自定义函数,提高模板的灵活性和功能性。 #### 表达式 - 在插值或指令参数中,可以使用表达式提供复杂的数据计算结果。 ### 4. 程序开发 #### 创建配置实例 - 开发者需...

    Spring配置Freemarker视图解析器,前台页面全部使用freemarker渲染

    Freemarker还支持宏、函数、自定义标签库等功能,可以极大地增强模板的灵活性和可复用性。 在实际应用中,控制器层会将模型数据传递给视图,如下所示: ```java @GetMapping("/users") public String getUsers...

    freemarker03

    5. **#import指令**:引入其他模板库或自定义函数库。这使得可以使用库中的宏或变量,例如,`&lt;#import "lib.ftl" as lib&gt;`,之后就可以使用lib.someMacro()。 6. **#macro指令**:定义自定义的宏,类似于函数。例如...

    Freemarker模版实现接口和继承(下)

    宏是一种可重用的FTL片段,可以像函数一样被调用。`MacroWrapper` 可能用于包装和管理宏的定义,包括宏的参数处理、调用和输出。 6. **模板继承和导入** 在 Freemarker 中,`&lt;#import&gt;` 和 `&lt;#extends&gt;` 指令是...

    java签购单freemaker生成

    同时,为模板添加自定义函数或宏,简化模板编写。此外,还可以通过添加额外的逻辑,支持多种签购单模板,以满足不同的业务场景。 在实际应用中,签购单的生成可能还会涉及到安全问题,如防止数据篡改,这就需要对...

    freemarker的jar包和代码

    - **自定义函数**:通过`TemplateMethodModelEx`接口实现自定义函数库。 - **数据类型转换**:内置转换器支持多种类型转换。 FreeMarker是一个灵活且功能强大的模板引擎,它的强大之处在于能够清晰地分离表现层和...

    freemark 2.3.19 中文教程

    4. **自定义函数和指令(Custom Tags and Directives)**: 可以通过扩展FreeMarker API,创建自定义的函数或指令。 **五、最佳实践** 1. **模板设计原则**: 保持模板简洁,避免复杂的逻辑,尽量让模板只负责呈现...

    FREEMARKER中文PDF教材

    3. **指令**:深入讲解Freemarker的各种指令,如`&lt;#include&gt;`用于导入其他模板,`&lt;#assign&gt;`用于定义变量,`&lt;#function&gt;`用于创建自定义函数等。 4. **内置函数和方法**:介绍Freemarker提供的内置函数,如字符串...

    freemarker实例,真实

    这个实例是一个不依赖数据库、使用相对路径生成文件的基础示例,非常适合初学者了解和学习Freemarker的...随着深入学习,你将掌握更多高级特性,如宏、指令和自定义函数,从而更好地利用Freemarker来构建复杂的应用。

    freemarker 语法大全 文档

    - 自定义方法:可以扩展Freemarker,创建自定义函数和方法。 - 自定义Transforms:用于转换输出的HTML或其他内容。 6. **数据类型**: - Sequence:对应Java中的List、数组等非键值对集合。 - Hash:键值对的...

    Freemarker中文版

    7. **自定义函数和标签库**: 开发者可以创建自定义函数和标签库,通过`&lt;#function&gt;`定义函数,或者引入第三方的FTL标签库,如SpringMacro或DisplayTag,以扩展Freemarker的功能。 8. **模板配置**: 通过`freemarker...

    freemarker入门手册

    同时,还可以自定义函数(宏),提高模板的可重用性。 7. **错误处理与调试** 当模板执行出错时,Freemarker会抛出异常并显示错误信息。为了更好地调试,可以开启模板的调试模式,以获得更详细的错误报告。 8. **...

    Freemarker教程(中文版)

    你还可以使用`&lt;#assign&gt;`定义变量,`&lt;#function&gt;`自定义函数,以及`&lt;#import&gt;`和`&lt;#include&gt;`引入其他模板,实现模板的复用和模块化。 在实际应用中,Freemarker通常与Spring框架结合使用。通过Spring的`...

Global site tag (gtag.js) - Google Analytics