文档章节

Freemarker宏和函数的用法和区别

FansUnion
 FansUnion
发布于 2015/05/03 01:28
字数 306
阅读 20
收藏 0

1.宏(macro)

写法
<#macro page url page maskSize=5>
    <#if (number == pages)>

  <li><a href="javascript:void(0);">下一页</a></li>

  <li><a href="javascript:void(0);">尾页</a></li>

    <#else>

        <li><a href="${buildPageUrl(url2,page.pageNum+1,page)}">(注:这个地方可以直接调用宏所在的FTL中的函数)下一页</a></li>   

         <li><a href="${buildPageUrl(url2,page.pages,page)}">尾页</a></li>   

    </#if>

</#macro>

引入方式: <#import  "/user/common/macro/page.ftl" as pg >
调用方式:<@pg.page url="${queryUrl}" page=page  maskSize=10 />   
  
 
2.函数(function)
写法:
 <#function buildPageUrl url pageNum data>

    <#assign pageUrl = "${url}?pageNum=${pageNum}&pageSize=${data.pageSize}">

    <#return pageUrl/>

</#function>
引入方式:<#include "/user/common/macro/date.ftl"/>
调用方式: ${buildPageUrl(url2,page.pageNum+1,page)}

3.不同的地方
   
  <#return/> 的用途、引入方式、 调用方式 都不同。
 

   宏:可以提前返回,比如<#return/> 
   但是不能<#return 1>, A macro cannot return a value 

  宏,主要作用是,拼接内容,把宏内部的字符串展示出来,return返回值没有意义。

   函数:与宏的调用方式不同,直接 
${buildPageUrl(url2,page.pageNum+1,page)}执行函数。
  返回值才是最关键的结果,不是为了显示函数内部的字符串内容。
   

---------------

补充一点,在宏所在的ftl中,同时定义了函数,宏中可以直接使用这个函数。

© 著作权归作者所有

FansUnion
粉丝 60
博文 858
码字总数 825464
作品 0
丰台
高级程序员
私信 提问
Spring Boot 最佳实践(三)模板引擎FreeMarker集成

一、FreeMaker介绍 FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT、电子邮件、配置文件、源代码等)的工具,它不是面向最终用户的,而是一款程序员使用的组件。 ...

王磊
2018/08/31
0
0
FreeMarker 快速入门

什么是 FreeMarker? FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML格式的文本用来 自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说...

点点与麦兜
2016/03/16
230
0
Java模版引擎:Velocity 和 FreeMarker 孰优孰劣

对 Java 程序员来说,最优秀的模版引擎无外乎 Velocity 和 FreeMarker 了。但是对一个尚未接触过这两个项目的人来说,就不知道该选择哪个,哪个才是最适合自己的。下面的内容来自 FreeMarker...

红薯
2009/05/07
24.5K
17
FreeMarker中文API手册(完整)

原文地址:http://blog.csdn.net/junjun16818/article/details/6990068 FreeMarker概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来...

随智阔
2014/03/09
3.6K
0
重写了JFinal的demo,加入了实际项目应用的封装

刚刚结束一个网站的开发(http://www.cnkuke.com)把项目中常用的freemarker宏和一些封装类分享给大家,希望能帮助初次使用JFinal做项目的同学少走弯路。 封装如下: 一、freemarker封装 分页...

axhack
2013/08/01
2.7K
15

没有更多内容

加载失败,请刷新页面

加载更多

15、SpringMVC进行json交互

SpringMVC进行json交互 json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。 请求json、输出json。要求请求的是json串,前端页面中需要将请求的内容转成json,...

快乐的瓶子
30分钟前
7
0
delphi版插apc杀进程驱动源码

从c代码转的,备份一下,里面有硬编码unit MyDriver;{$HINTS OFF}{$WARNINGS OFF}interfaceusesnt_status, ntoskrnl, native, winioctl, fcall, macros;typeTKILL = ...

simpower
34分钟前
4
0
带你上手一款下载超 10 万次的 IDEA 插件

作者 | 倪超(银时) 阿里云开发者工具产品专家 本文整理自 11 月 7 日社群分享,每月 2 场高质量分享,点击加入社群。 导读:Cloud Toolkit 是本地 IDE 插件,帮助开发者更高效地开发、测试...

阿里云官方博客
34分钟前
4
0
GMAT语法7个常考重要考点分析

GMAT语法考点多,并非所有考点都值得重点关注。实际上GMAT语法存在一些高频考点,考生需要优先掌握它们才能更好地保证得分。同时GMAT备考中大家还需要培养连续做题的耐力。下面小编就来做具体...

bole6
39分钟前
4
0
最佳实践 | RDS & POLARDB归档到X-Pack Spark计算

X-Pack Spark服务通过外部计算资源的方式,为Redis、Cassandra、MongoDB、HBase、RDS存储服务提供复杂分析、流式处理及入库、机器学习的能力,从而更好的解决用户数据处理相关场景问题。 RD...

一肥仔
40分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部