`
269629151
  • 浏览: 121204 次
社区版块
存档分类
最新评论

freemaaker 基本语法测试整理

    博客分类:
  • web
阅读更多

测试类

 

/**
 * HelloFreeMaker.java
 * com.lin.freemaker
 * zlj
 * Jul 18, 2012   
 *
 */


package com.lin.freemaker;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.lin.bean.Student;

import freemarker.template.Configuration;
import freemarker.template.Template;

/**
 * Class HelloFreeMaker
 * @author zlj
 * @version
 * @Date Jul 18, 2012 2:12:41 PM
 */

public class HelloFreeMaker {
 private Configuration cfg;
 public void init() throws IOException{
  cfg=new Configuration();
  File file=new File("src/templates");
  if(!file.exists()){
   file.mkdir();
  }
  cfg.setDirectoryForTemplateLoading(new File("src/templates"));
 }
 public void process()throws Exception{
  Map<String, Object> root=new HashMap<String, Object>();
  List<Student> list=new ArrayList<Student>();
  list.add(new Student("123","000"));
  list.add(new Student("234","001"));
  list.add(new Student("456","001"));
  root.put("name", "zlj");
  root.put("msg", "FreeMaker实例");
  root.put("list", list);
  Template t=cfg.getTemplate("test.ftl");
  t.process(root, new OutputStreamWriter(System.out));
 }
 public static void main(String[] args) throws Exception {
  HelloFreeMaker hf=new HelloFreeMaker();
  hf.init();
  hf.process();
 }
}

 

 

测试文件

 

test.ftl

 

 

    FreeMarker 基本语法测试
<#--动态赋值-->
${name}
${msg}

<#--
freenarker 标签类似html标签
开始标签:(<#directivename parameters>  结束标签:</#directivename>)  -->

<#--取list类型数据-->
<#list list as student>
student.name的值为: ${student.name}
<#if student.name="123">
if语法
<#elseif student.name="234">
else if 语法
<#else>
else 语法
</#if>
</#list>
 
<#-- x_index 变量索引 x_has_next 是否有下一个    break 跳出循环  -->
<#list ["星期一","星期二","星期三","星期四","星期五"] as x>
 ${x_index +1}. ${x} <#if x_has_next>,</#if>
 <#if x = "星期四">
 <#break>
 </#if>
</#list>

<#--宏定义 类似c语言的宏定义-->
<#macro greet person>
<font size="+2"> Hello ${person}!</font>
</#macro>

<#--在宏定义中使用循环变量,通常用来重复嵌套内容,基本用法为:作为nested指令的参数,传递循环变量的实际值,而在调用自定义指令时,在标记的参数后面指定循环变量的名字。-->
<#macro repeat count>
<#list 1..count as x>
<#nested x,x/2,x==count />
</#list>
</#macro>

<@repeat count=4;c,halfc,last>
${c},  ${halfc}  ,${last?string}  <#--  必须将bool值转换成strin 才能正常输出-->
<#if last>
last!
</#if>
</@repeat>


<#--调用定义的标签 需要使用  <@ -->
<@greet person="${name}" />

<#--  <#assign price = 42 />  定义变量
根据默认格式(#setting 指令设置)将表达式结果转换成文本输出。 -->
<#setting number_format = "currency" />
<#assign price = 42 />
${price}
${price?string}
${price?string.number}
${price?string.currency}
${price?string.percent}

<#-- 输出值为日期值:根据默认格式(由 #setting 指令设置)将表达式结果转换成文本输出,可以使用内建的字符串函数格式化单个插值,-->
<#assign lastUpdated = "2009-01-07 15:05"?datetime("yyyy-MM-dd HH:mm") />
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")};  
${lastUpdated?string("EEE,MMM d,yy")};
${lastUpdated?string("EEEE,MMMM dd,yyyy,hh:mm:ss a '('zzz')'")};
${lastUpdated?string.short};
${lastUpdated?string.long};
${lastUpdated?string.full};

<#-- 数字格式化插值可采用#{expr;format}的形式来格式化数字,其中format可以是:
     mX:小数部分最小X位 四舍五入
     MX:小数部分最大X位
     例如: -->

<#assign x = 2.582 />
<#assign y=4 />
#{x;M2};
#{y;M2};
#{x;m1};
#{y;m1};
#{x;m1M2};
#{y;m1M2};

<#-- Map集合
Map对象使用花括号包括,Map中的key-value对之间以英文冒号(:)隔开,多组key-value对之间以英文逗号(,) 隔开  例如 -->

<#assign score = {"语文":78,"数学":83,"Java":89}  />
<#list score?keys as x>
${x}--->${score[x]};
</#list>

<#--截取字符串 -->
<#assign book="疯狂Ajax讲义" />      
${book[0]}
${book[4]}
${book[1..4]}

<#-- 使用内建的函数。-->
<#assign x = 5>
${(x/2)?int?string.number}
${1.1?int}
${1.999?int}
${-1.9999?int}
${-1.1?int}
 

<#assign test="Tom & Jerry123" />
${test?html}
${test?upper_case?html}

 

 

测试结果 控制台输出

 

   FreeMarker 基本语法测试
zlj
FreeMaker实例

student.name的值为: 123
if语法
student.name的值为: 234
else if 语法
student.name的值为: 456
else 语法
 
 1. 星期一 ,
 2. 星期二 ,
 3. 星期三 ,
 4. 星期四 ,


1,  0.5  ,false 
2,  1  ,false 
3,  1.5  ,false 
4,  2  ,true 
last!


<font size="+2"> Hello zlj!</font>

¥42.00
¥42.00
42
¥42.00
4,200%

2009-01-07 15:05:00 中国标准时间;  
星期三,一月 7,09;
星期三,一月 07,2009,03:05:00 下午 (CST);
09-1-7 下午3:05;
2009年1月7日 下午03时05分00秒;
2009年1月7日 星期三 下午03时05分00秒 CST;

2.58;
4;
2.6;
4.0;
2.58;
4.0;

语文--->¥78.00;
数学--->¥83.00;
Java--->¥89.00;


a
狂Aja

2
¥1.00
¥1.00
-¥1.00
-¥1.00
 

Tom &amp; Jerry123
TOM &amp; JERRY123

 

 

 

分享到:
评论

相关推荐

    c#基本语法if测试c#基本语法if测试

    c#基本语法if测试c#基本语法if测试c#基本语法if测试c#基本语法if测试

    日语语法大全整理笔记.zip

    1. **日语语法大全整理笔记**:这是一份综合性的资料,可能包含了从基础到高级的日语语法要点,包括但不限于接续词、助动词、敬语、授受关系、被动语态、使役形、连用形、终止形等。这些笔记通常会以实例和解释相...

    JavaSE基础语法测试题库

    本资源摘要信息主要涵盖 JavaSE 基础语法测试题库的相关知识点,涵盖了环境变量、Java 源文件和编译后的文件扩展名、基本数据类型、时间转换、控制台输出、数组操作、排序算法、查找算法等多方面的内容。 一、环境...

    日语语法大全整理笔记.pdf

    多年积累的日语语法资源,希望对大家的日语学习有一定的帮助。

    FPGA基本语法FPGA基本语法

    FPGA 基本语法 FPGA(Field-Programmable Gate Array)是一种可编程的逻辑电路阵列,具有高度灵活性和可重配置性。FPGA 基本语法是指 FPGA 编程语言的基本结构和规则,用于描述数字逻辑电路的行为和结构。Verilog ...

    动态SQL语句基本语法

    学习SQL应知道的动态SQL语句基本语法 学习SQL应知道的动态SQL语句基本语法 学习SQL应知道的动态SQL语句基本语法 学习SQL应知道的动态SQL语句基本语法

    FPGA 基本语法知识点总结

    FPGA(现场可编程门阵列)的基本语法在不同的硬件描述语言(HDL)中有所不同,常见的 HDL 语言包括 VHDL 和 Verilog。FPGA 基本Verilog语法知识点总结 里面有时序逻辑电路 组合逻辑电路 运算符 always语句 assign...

    c#swith基本语法c#swith基本语法c#swith基本语法

    c#swith基本语法c#swith基本语法c#swith基本语法c#swith基本语法

    MATLAB中的基本语法和语句示例代码.rar

    MATLAB中的基本语法和语句示例代码.rarMATLAB中的基本语法和语句示例代码.rarMATLAB中的基本语法和语句示例代码.rarMATLAB中的基本语法和语句示例代码.rarMATLAB中的基本语法和语句示例代码.rarMATLAB中的基本语法和...

    RPG语言基本语法

    "RPG语言基本语法详解" RPG 语言是 AS400 平台上的开发语言,对于 0 基础的人学习来说非常适合。这个文档主要介绍了 RPG 语言的基本语法和基本函数的使用,旨在帮助大家学习和掌握 RPG 语言。 第一章 物理文件和...

    net介绍及C#基本语法

    net介绍及C#基本语法.ppt

    02C语言基本语法知识[整理].pdf

    02C语言基本语法知识[整理].pdf

    JAVA基本语法及关键字.chm

    JAVA的基本语法及48个关键字! chm文档! 找了好久都找不到,只好自己做一个了! 分享一下...

    Java中的基本语法部分思维导图

    JavaSE阶段,基本语法部分的思维导图,学习Java对于新人来说本来就比较难,我在这里自己把基本语法部分的知识点都进行了一个串联,做成了一个思维导图,可供初学者以及备考学生进行参考

    软件测试的一些语法资料

    综上所述,"软件测试的一些语法资料"主要涵盖了SLR表生成和LR语法分析技术,这些都是软件测试领域中的核心知识点。通过学习这些内容,测试工程师可以增强对软件语言结构的理解,提高测试的准确性和效率。

    PHP的基本语法

    资源名称:PHP的基本语法内容简介:1. PHP在Web开发中的应用2. 第一个PHP脚本语言3. 变量4. 变量的类型5. 常量6. PHP中的运算符7. 表达式一、 PHP在Web开发中的应用PHP是什么?™ PHP(Hypertext Preprocessor缩写)...

    jsp基本语法使用

    jsp基本语法 本书由 中华电脑书库 整理制作, 仅供个人学习研究交流之用 版权归原作者所有,严禁作商业用途。否则一切后果自理

    DB2数据库基本语法

    一些DB2数据的基本SQL语法,供参考学习之用

    JAVA语法大全(基本语法)

    JAVA语法大全(基本语法) JAVA语法大全是指JAVA的基本语法,包括关键字、词法规则、数据类型、常量与变量、运算符和表达式、语句、数组和字符串等方面的知识点。 一、词法规则 词法规则是JAVA程序的基本组成部分...

Global site tag (gtag.js) - Google Analytics