一,讲解一

1、自定义标签说明

宏变量存储模板片段可以被用作自定义指令macro

2、示例说明

 <html>
   <head>
     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     <title>freemarker自定义标签</title>

   </head>

   <body>
      <#--freemarker自定义标签-->
      <#macro write>
          repeat("张三丰",3)
      </#macro>

      <@write/>
   </body>
 </html>

3、示例结果

 <html>
   <head>
     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     <title>freemarker自定义标签</title>

   </head>

   <body>

          repeat("张三丰",3)
   </body>
 </html>

二,讲解二

1、自定义标签

通过自定义标签,写一个重复指定字符串

2、实现源码

 <html>
   <head>
     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     <title>freemarker自定义标签</title>

   </head>

   <body>
      <#--freemarker自定义标签-->
      <#macro repeat nums=40 name="你好">
           <#list 1..nums as n>
                <h1>张三,${name}${n}</h1>
           </#list>
      </#macro>

      <@repeat/>
   </body>
 </html>

3、实现结果

 <html>
   <head>
     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     <title>freemarker自定义标签</title>

   </head>

   <body>

                <h1>张三,你好1</h1>
                <h1>张三,你好2</h1>
                <h1>张三,你好3</h1>
                <h1>张三,你好4</h1>
                <h1>张三,你好5</h1>
                <h1>张三,你好6</h1>
                <h1>张三,你好7</h1>
                <h1>张三,你好8</h1>
                <h1>张三,你好9</h1>
                <h1>张三,你好10</h1>
                <h1>张三,你好11</h1>
                <h1>张三,你好12</h1>
                <h1>张三,你好13</h1>
                <h1>张三,你好14</h1>
                <h1>张三,你好15</h1>
                <h1>张三,你好16</h1>
                <h1>张三,你好17</h1>
                <h1>张三,你好18</h1>
                <h1>张三,你好19</h1>
                <h1>张三,你好20</h1>
                <h1>张三,你好21</h1>
                <h1>张三,你好22</h1>
                <h1>张三,你好23</h1>
                <h1>张三,你好24</h1>
                <h1>张三,你好25</h1>
                <h1>张三,你好26</h1>
                <h1>张三,你好27</h1>
                <h1>张三,你好28</h1>
                <h1>张三,你好29</h1>
                <h1>张三,你好30</h1>
                <h1>张三,你好31</h1>
                <h1>张三,你好32</h1>
                <h1>张三,你好33</h1>
                <h1>张三,你好34</h1>
                <h1>张三,你好35</h1>
                <h1>张三,你好36</h1>
                <h1>张三,你好37</h1>
                <h1>张三,你好38</h1>
                <h1>张三,你好39</h1>
                <h1>张三,你好40</h1>
   </body>
 </html>

三,讲解三nested指令

1、nested指令

是可选的,可以在<#macro>和</#macro>之间使用在任何位置和任意次数

2、示例说明

 <#macro tag>
           <#nested/>
      </#macro>

      <@tag>
          <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
          </ul>
      </@tag>

3、运行结果

 <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
          </ul>

freemarker自定义标签(二十一)的更多相关文章

  1. freemarker自定义标签报错(二)

    freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Unexpected end of file reached. at freemarker ...

  2. freemarker自定义标签(二)

    freemarker自定义标签 1.自定义标签 通过自定义标签,写一个重复指定字符串 2.实现源码 <html> <head> <meta http-equiv=&quo ...

  3. OneBlog开源博客-详细介绍如何实现freemarker自定义标签

    前言 OneBlog中使用到了springboot + freemarker的技术,同时项目里多个controller中都需要查询一个公有的数据集合,一般做法是直接在每个controller的方法中通 ...

  4. freemarker自定义标签报错(六)

    freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Encountered "\"\u4f60\u597d\uff01\& ...

  5. freemarker自定义标签报错(五)

    freemarker自定义标签 1.错误描述 六月 05, 2014 11:40:49 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严 ...

  6. freemarker自定义标签报错(四)

    freemarker自定义标签 1.错误描述 六月 05, 2014 11:31:35 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严 ...

  7. freemarker自定义标签(一)

    freemarker自定义标签 1.自定义标签说明 宏变量存储模板片段可以被用作自定义指令macro 2.示例说明 <html> <head> <meta http-eq ...

  8. freemarker自定义标签报错(三)

    freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Encountered " " at line 14, column ...

  9. freemarker自定义标签报错(一)

    freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgr ...

随机推荐

  1. DNA序列局部比对(Smith–Waterman algorithm)

    生物信息原理作业第三弹:DNA序列局部比对,利用Smith–Waterman算法,python3.6代码实现. 实例以及原理均来自https://en.wikipedia.org/wiki/Smith ...

  2. CNN网络架构演进:从LeNet到DenseNet

    卷积神经网络可谓是现在深度学习领域中大红大紫的网络框架,尤其在计算机视觉领域更是一枝独秀.CNN从90年代的LeNet开始,21世纪初沉寂了10年,直到12年AlexNet开始又再焕发第二春,从ZF ...

  3. Google chrome浏览器中通过扩展调用本地应用程序以及和程序相互通讯(C++)

    最近项目用到浏览插件的开发,IE用到的是BHO,chrome打算做成扩展. 但是和ie有一点不同,chrome扩展是基于html+js+css开发的,那么就会有二个问题 1. 代码和算法等容易被别人复 ...

  4. Javascript原型继承容易忽略的错误

    编写Javascript的开发者都知道,JS虽然没有类(ES6添加了class语法),但是可以模拟出OOP语言的类和面向对象的概念,比如我们都知道的一句话,Javascript中处处是对象,而面向对象 ...

  5. javascript 回到顶部 动画效果

    上代码: <!DOCTYPE html> <html> <head> <meta content="测试demo" name=" ...

  6. [Python Study Notes]psutil模块

    系统性能信息模块psutil psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(CPU,内存,磁盘,网络等)信息,主要应用于系统监控,分析和限制系统资源及进程的管理,它实现了同等 ...

  7. iOS 8 UIAlertController 和 UIAlertAction

    将alertView 和 actionSheet 封装在UIAlertController 里面化整为零,使开发者更便利 当我们一味的追求高内聚,低耦合的时候,伟大的苹果反其道而行之,这也告诉了我们一 ...

  8. Vue.js依赖收集

    写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出.文章的原地址:https://github.com/an ...

  9. [bzoj4552][Tjoi2016&Heoi2016]排序-二分+线段树

    Brief Description DZY有一个数列a[1..n],它是1∼n这n个正整数的一个排列. 现在他想支持两种操作: 0, l, r: 将a[l..r]原地升序排序. 1, l, r: 将a ...

  10. nyoj358 取石子(五) 斐波那契博弈

    我写代码找的规律:如果这个n是斐波那契数,那么它是P态,如2,3,5,8..... 找规律的代码: #include <cstdio> #include <cmath> #in ...