`
baobeituping
  • 浏览: 1068744 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

FreeMaker实现静态化技术(3)【标签的使用】

阅读更多

写在ftl模板文件中的,类似JSP中的JSTL新的语法

1.通用插值

字符串型

  <#setting number_format="currency"/>
  <#assign answer=42/>
  ${answer}
  ${answer?string}
  ${answer?string.currency}
  ${answer?string.number}

 

输出:

¥42.00

¥42.00

¥42.00

42

日期型

在JAVA文件中定义

Map root = new HashMap();
  root.put("message","Hello FreeMaker");
  root.put("lastUpdate", new Date());

 

在模板文件中的输出

  ${lastUpdate?string("yyyy-mm-dd HH:mm:ss")}
  ${lastUpdate?string("EEE, MMM d, ''yy")}

 

输出:

2010-56-27 14:56:51
星期五, 八月 27, '10

 

数字型

数字格式化可采用#{expr:format}形式来格式化数字

mx:小数部分最小X位

Mx:小数部分最大X位

<#assign x=2.582/>
  <#assign y=4/>
  #{x;M2}<#--注意在这里数字的表示用#而不是用$-->
  #{y;M2}
  #{x;m1}
  #{y;m1}
  #{x;m1M2}
  #{y;m1M2}

输出:

2.58

4

2.6

4.0

2.58

4.0

 

表达式

 ${"我是张三"}--直接定义字符串
  ${r"${foo}"}--特殊表示,定义在r后面的字符串都会输出
  <#list ["星期一","星期二"] as x>--定义一个集合,集合采用[]表示,中间以逗号区分
  ${x}
  </#list>

 

对于map的定义和使用

定义一个BOOK类,和一个Author类

Book属性Name,Author

Author属性Name,Address

 

在JAVA中

Book book = new Book();
  Author author = new Author();
  book.setName("J2EE权威指南");
  
  author.setName("李刚");
  author.setAddress("广州");
  
  book.setAuthor(author);
  
  
  Map root = new HashMap();
  root.put("message","Hello FreeMaker");
  root.put("lastUpdate", new Date());
  
  root.put("info","Struts2 权威指南");
  root.put("book",book);//将Book添加到Map中

页面获取的方式

${book.author.name}

 ${book.name}

输出:李刚

J2EE权威指南

集合标签

 <#list ["星期一","星期二","星期三","星期四"] as x>
   ${x_index + 1}.${x}<#if x_has_next>,</#if>
  </#list>

x代表当前指定的值。

x_index:当前变量的索引值

 

x_has_next:是否存在下一个对象

输出:星期一 星期二 星期三 星期四

 

 

不处理页面指令

<#noparse>

   中间的内容将不做处理直接输出

  <#list ["星期一","星期二","星期三","星期四"] as x>
   ${x_index + 1}.${x}<#if x_has_next>,</#if>
  </#list>

</#noparse>

输出:

 <#list ["星期一","星期二","星期三","星期四"] as x>
   ${x_index + 1}.${x}<#if x_has_next>,</#if>
  </#list>

 

escape指令

<#escape x as x?html>
   FirstName:${message}
</#escape>

类似于:

FirstName:${message?html}

 

assign指令

<#assign y>
   <#list ["星期一","星期二","星期三","星期四"] as x>
    ${x}
   </#list>
  </#assign>
  ${y}

输出:

星期一 星期二 星期三 星期四

 

自定义模板标签

macro标签,可以自定义使用一个模板,

<#macro book booklist>
   <#list booklist as a>
    ${a}
   </#list>

  </#macro>

使用模板采用的标签是@
  <@book booklist=["星期一","星期二","星期三","星期四"]/>

book是别名,为了在@处引用,booklist表示的是传入的数据,

<#list booklist as a>
    ${a}
   </#list>

在这个地方引用

 

 

 

分享到:
评论

相关推荐

    freemaker代码生成工具

    SSI是一种早期的服务器端包含技术,常用于静态网页中插入动态内容。然而,Freemarker作为更强大的模板引擎,通常用于生成动态内容,而非简单地插入静态页面的片段。 6. `CodeGenerator`:这个压缩包可能包含了代码...

    freemaker 中文文档

    FreeMarker 是一个强大的模板引擎,常用于Web应用中的动态内容生成,例如Java Web开发中的视图层技术。它与Spring框架结合使用时,可以作为MVC模式中的V(视图)部分。本文档将深入介绍FreeMarker的核心概念、配置、...

    freemaker+struts2

    【FreeMarker + Struts2 知识点详解】 FreeMarker 和 Struts2 是两种常见的 Java Web 开发技术,它们在构建 MVC...同时,这种组合也能很好地适应 SEO(搜索引擎优化)需求,通过 URL 重写技术生成友好的静态化链接。

    FreeMaker模板

    1. 使用静态化技术,将动态生成的页面转化为静态HTML,减少服务器负担并提高加载速度。 2. 生成合适的元信息,如`&lt;meta&gt;`标签,包含关键词、描述等,帮助搜索引擎理解页面内容。 3. 通过FreeMarker控制URL结构,使其...

    FreeMaker开发教程.pdf

    3. **注释**:使用 `和 `--&gt;` 进行注释,FreeMarker会忽略这部分内容。 FreeMarker还支持多种表达式,包括基础数据类型如字符串(String)。字符串可以用双引号或单引号括起,支持转义字符,例如双引号(`\"`)、单引号...

    FreeMarker语法知识,提够网站访问速度的技术

    本文将深入探讨FreeMarker的语法知识,帮助读者理解如何有效地使用这个技术。 1. FreeMarker模板结构 - 文本:模板中的静态内容,会被原样输出到最终的HTML页面上。 - 注释:使用`&lt;#-- ... --&gt;`包裹的内容,不会...

    servlet与freeMark组合

    Servlet与FreeMarker是Java Web开发中的两个重要技术,它们经常被组合使用来构建动态网站。...同时,标签中的“源码”和“工具”提示,意味着要关注底层实现和工具的使用,这对于提升开发技能非常有帮助。

    FreeMarker通用的分页

    在IT领域的模板引擎技术中,FreeMarker是一种广泛使用的开源模板引擎,它被设计用于生成文本输出,如HTML、XML或纯文本。FreeMarker提供了一种灵活且强大的方式来处理动态内容,尤其适用于Web开发中的视图层。在...

    FreeMarkerDemo-java.rar

    【标签】"springboot docx freemaker" 这些标签揭示了项目的关键技术。"springboot"指的是Spring Boot框架,"docx"是指Microsoft Word的Open XML文档格式,"freemaker"则是指FreeMarker模板引擎。这三个标签表明项目...

    beetl-core

    性能的提升得益于宏观层面的优化,如渲染引擎、IO的二进制输出以及字节码属性访问的增强,以及微观层面的技术,如使用一维数组保存上下文Context、静态文本的合并处理、重复使用字节数组防止Java频繁创建和销毁数组...

    Java进阶路线

    这包括静态成员变量、静态初始化块、成员变量、构造函数等的执行顺序。 **6. 泛型** 泛型使得代码更加通用且类型安全。掌握泛型接口和方法、类型擦除、协变、逆变等概念对于编写高质量的Java代码至关重要。 **7. ...

Global site tag (gtag.js) - Google Analytics