Freemarker宏和函数的用法和区别

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中,同时定义了函数,宏中可以直接使用这个函数。

转载于:https://www.cnblogs.com/qitian1/p/6463097.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聚类算法初探(八)数据尺度化问题

文中尺度化的一些具体公式可参见 http://blog.csdn.net/itplus/article/details/10088101 其他相关链接 引言 预备知识 直接聚类法 K-means DBSCAN OPTICS 聚类分析的效果评测 作者: peghoty 出处: http://blog.csdn.net/itplus/article/details/10484553 欢迎转载/分享, 但请…

160 - 16 bjanes.2

环境&#xff1a; windows xp sp3 工具&#xff1a; bjanes.2&#xff0c;HashCalc 这个和14题是一样的&#xff0c;看名字就发现都是2.0A&#xff0c;然后用HashCalc来计算一下MD5&#xff0c;发现它们的值是相同的。 如果没猜错&#xff0c;应该就是在14题是被放错题了。

HDU 1269

很水的TARJAN求强联通图的问题。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int N10010; const int M100010; int head[N],dfn[N],low[N],stack[N],st; struct Edge{int u,v;int nxt…

maven库文件所在目录

C:\Documents and Settings\jgzhang2\.m2\repository转载于:https://www.cnblogs.com/yipihema/p/3289140.html

imul和mul的计算

imul是把操作数符号也算上的&#xff1a; 设 AL 0B4H BL 11H 执行 imul BL 后&#xff1a;AL 0FAF4 原因&#xff1a; imul是把符号也算上的&#xff0c;所以AL是某个数的补码&#xff0c;故得AL -4C -76D&#xff0c;而BL 17D 是正数&#xff0c;相乘得-1292&#x…

【待完善】make: command not found,以及libtool.m4 and ltmain.sh have a version mismatch问题的解决方案...

之前为了使用一个库&#xff0c;都是去下载源码&#xff0c;然后根据开发者提供的README手动用GCC编译&#xff0c;一直不能使用Makefile感觉很蛋痛&#xff0c;比如最近使用的ZThread 还是怪自己以前过于依赖IDE 最近发现用Cygwin就可以使用诸如./configure, make这样的命令&a…

ubuntu 12.04 下安装 MySQL 5.5

参考&#xff1a;http://www.linuxidc.com/Linux/2011-12/48920.htm《Ubuntu 11.04 通过 apt 安装 MySQL 5.1 的全过程记录》 说明&#xff1a;在mysql官网下载ubuntu下的安装包进行安装&#xff0c;不是一件容易的事。这里不是指下载&#xff0c;而是指安装配置过程。 所以可以…

160 - 17 bjanes.3

环境&#xff1a; Wiondws XP sp3 工具&#xff1a; ollydbg&#xff0c;ExeInfo PE 查壳&#xff1a; 用Exeinfo PE 查壳&#xff0c;没有壳&#xff0c;是VB写的 过程&#xff1a; 一&#xff1a;随便输入一个serial&#xff0c;得到一个错误信息消息框&#xff0c;OD载入…

菜鸟nginx源码剖析

菜鸟nginx源码剖析 配置与部署篇&#xff08;一&#xff09; 手把手配置nginx “I love you” TCMalloc 对MYSQL 性能 优化的分析 菜鸟nginx源码剖析系列文章解读 Author&#xff1a;Echo Chen&#xff08;陈斌&#xff09; Email&#xff1a;chenb19870707gmail.com Blog&…

很有挫败感

总会时不时的怀疑自己是不是学编程的料&#xff0c;还是自己太笨&#xff1f; 自己读研前对编程可以说是一窍不通&#xff0c;虽然本科时学过C&#xff0c;但那时也只是应付考试&#xff0c;没学到什么真才实学。 幸好读研后&#xff0c;自己开始猛的补各种知识&#xff0c;开始…

160 - 18 Brad Soblesky.1

环境&#xff1a; windows xp sp3 工具&#xff1a; Ollydbg&#xff0c;exeinfope 用exeinfope查壳&#xff1a; 没有壳&#xff0c;vc编译的 运行后第一步&#xff0c;随便输入个”12345“&#xff0c;弹出一个错误消息框。 OD载入后直接搜索错误消息框的字符串&#xff0c…

汉字转拼音缩写

汉字转拼音缩写 /// 〈summary〉 /// 汉字转拼音缩写 /// Code By MuseStudiohotmail.com /// 2014-12-02 /// 〈/summary〉 /// 〈param name"str"〉要转换的汉字字符串〈/param〉 /// 〈returns〉拼音缩写〈/returns〉 public string GetPYString(string str) { s…

160 - 19 Brad Soblesky.2

环境&#xff1a; windows xp sp3 工具&#xff1a; OD&#xff0c;exeinfope 查壳&#xff1a; 用exeinfope查壳&#xff0c;发现没有壳而且是vc编译的 随便输入一个name和serial&#xff0c;name "12345" serial "678910" 弹出错误窗口&#xff0c…

微信公众平台开发(59)相册

微信公众平台开发 微信公众平台开发模式 企业微信公众平台 万能相册 3G相册作者&#xff1a;方倍工作室 地址&#xff1a;http://www.cnblogs.com/txw1958/p/weixin-59-albums.html 相册(Photo album)又称影集或照片集&#xff0c;是用来装放相片的物品。相册主要用来收藏和保…

BugFix系列---开篇介绍

这个系列的文章&#xff0c;主要目的在于积累总结实际开发中遇到的错误&#xff0c;记录下来自己的解决思路&#xff0c;用来提升自己。 不出意外&#xff0c;应该会持续不断的记录更新&#xff0c;在整个开发openstack的过程中&#xff0c;抓住机会吸取开源界大牛的有点经验&a…

160 - 20 BuLLeT.8

环境&#xff1a; Windows xp sp3 工具&#xff1a; exeinfope, ollydbg 查壳&#xff1a; 用exeinfope查壳&#xff0c;发现加了壳 -- WWPack32 ver 1.xx &#xff0c;用f8单步调试法&#xff0c;脱壳。 脱掉之后发现是delphi写的 运行之后发现界面整洁&#xff0c;目标明…

hadoop学习笔记:zookeeper学习(上)

在前面的文章里我多次提到zookeeper对于分布式系统开发的重要性&#xff0c;因此对zookeeper的学习是非常必要的。本篇博文主要是讲解zookeeper的安装和zookeeper的一些基本的应用&#xff0c;同时我还会教大家如何安装伪分布式&#xff0c;伪分布式不能在windows下实现&#x…

恋爱Linux(Fedora20)2——安装Java运行环境(JDK)

因为Fedora20自带OpenJDK&#xff0c;所以我们先删除掉自带的&#xff1a; 1)查看当前的jdk情况 # rpm -qa|grep jdk 2)卸载openjdk # yum -y remove java java-1.7.0-openjdk* 3)下载JDK(我用的是这个&#xff0c;大家用什么版本可以自行选择)。 http://download.csdn.net/det…

160 - 21 Cabeca

环境&#xff1a; Windows xp sp3 工具&#xff1a; exeinfope ollydbg 查壳&#xff1a; 拿到程序后查壳&#xff0c;发现程序无壳&#xff0c;为Delphi写的。 程序长成这个样 输入&#xff1a; Name:GNUBD Serial&#xff1a;1234567 Serial&#xff1a;76543…

JS函数重载解决方案

JS的函数定义可以指定形式参数名称&#xff0c;多多少少我们会以为js至少可以支持参数个数不同的方法重载&#xff0c;然而遗憾的是这仅仅是一个假象&#xff0c;js所有的参数都是以arguments传递过去的&#xff0c;这个参数类似于数组&#xff0c;在函数调用的时候&#xff0c…