zoukankan      html  css  js  c++  java
  • FreeMarker---数据类型

    1、a.ftl

     1 你好,${user},今天你的精神不错!
     2 
     3 -----------------------------
     4 测试if语句:
     5 <#if user=="老高">
     6       高!
     7 </#if>
     8 
     9 ******************
    10 分数为:${random}
    11 <#if random gte 60>
    12        及格
    13 <#else>
    14       不及格
    15 </#if>
    16 
    17 ******************
    18 <#if random gte 90>
    19        优秀
    20 <#elseif random gte 80>
    21       良好
    22 <#else>
    23       一般
    24 </#if>
    25 
    26 --------------------------------
    27 测试List语句:
    28 <#list lst as dizhi>
    29     <b>${dizhi}</b><br/>
    30 </#list>
    31 ---------------------------------
    32 测试include语句
    33 <#include "included.txt" />
    34 
    35 -----------------------------------
    36 测试自定义指令(macro指令)
    37 定义宏:
    38 <#macro m1> <#--定义指令m1-->
    39   <b>aaabbbccc</b>
    40   <b>dddeeefff</b>
    41 </#macro>
    42 
    43 定义带参的宏指令:
    44 <#macro m2 a b c>
    45   ${a}--${b}--${c}
    46 </#macro>
    47 
    48 
    49 
    50 <#macro border>
    51   <table border=4 cellspacing=0 cellpadding=4> 
    52     <tr><td>
    53        <#nested>
    54     </td></tr>
    55   </table>
    56 </#macro> 
    57 
    58 调用宏:
    59 <@m1 /> <@m1 />
    60 <@m2 "hi" "nihao" "hello"/>
    61 <#-- <@border "sss"/> -->
    62 <@border>
    63     agsdjgdjgsjkhksdhkdhksh
    64 </@border>
    65 
    66 -----------------------------------
    67  测试命名空间
    68 <#import "b.ftl" as bb />
    69 <@bb.copyright date="2010-2011"/>
    70 ${bb.mail}
    71 <#assign mail="my@163.com"/>
    72 ${mail}
    73 <#assign mail="my@163.com" in bb/>
    74 ${bb.mail}
    75 --------------------------------
    76 测试数据类型:
    77 定义:
    78 <#assign b=123 />
    79 ${date1?string("yyyy-MM-dd HH:mm:ss")}
    80 ---------------------------------------
    81 ${html2?html}
    82 
    83 -------------------------
    84 测试空值处理:
    85 <#-- ${sss}  没有定义这个变量,会报异常 -->
    86 ${sss!} <#-- 没有定义这个变量,默认值是空字符串  -->
    87 ${sss!"abc"} <#--没有定义这个变量,默认值是字符串abc -->


    2、b.ftl

    <#macro copyright date>
      <p>Copyright (C) ${date} 北京尚学堂.</p>
    </#macro>
    <#assign mail = "bjsxt@163.com">

    3、included.txt

    这是被包含的文件

    4、测试类Test1.java

     1 package com.test.freemarker;
     2 
     3 import java.io.File;
     4 import java.io.OutputStreamWriter;
     5 import java.io.Writer;
     6 import java.util.ArrayList;
     7 import java.util.Date;
     8 import java.util.HashMap;
     9 import java.util.List;
    10 import java.util.Map;
    11 import java.util.Random;
    12 
    13 import freemarker.template.Configuration;
    14 import freemarker.template.Template;
    15 
    16 public class Test1 {
    17 
    18     public static void main(String[] args) throws Exception {
    19         //创建Freemarker配置实例
    20         Configuration cfg = new Configuration();
    21         
    22         cfg.setDirectoryForTemplateLoading(new File("templates"));
    23         
    24         //创建数据模型
    25         Map root = new HashMap();
    26         root.put("user", "老高");
    27         root.put("random", new Random().nextInt(100));
    28         
    29         
    30         List list = new ArrayList();//测试list
    31         list.add("北京");
    32         list.add("上海");
    33         list.add("纽约");
    34         root.put("lst", list);
    35         
    36         root.put("date1", new Date());
    37         
    38         root.put("html2", "<b>粗体</b>");
    39         
    40         
    41         //加载模板文件
    42         Template t1 = cfg.getTemplate("a.ftl");
    43         
    44         //显示生成的数据
    45         Writer out = new OutputStreamWriter(System.out);
    46         t1.process(root, out);
    47         out.flush();
    48     }
    49 
    50 }
  • 相关阅读:
    CDH 下线节点
    Linux下如何查看哪些进程占用的CPU内存资源最多
    CentOS7安装iptables防火墙
    Mysql 编译报错 g++: internal compiler error: Killed (program cc1plus) 解决办法
    Jenkins配置gitlab
    mysql连接卡死,很多线程sleep状态,导致CPU中mysqld占用率极高
    c++0.1-----基于对象知识大综合(非指针篇)
    c++0.0-----挖坑
    python0.16------构造函数/析构函数/self详解/重写/访问限制/对象属性和类属性/@property/运算符重载
    python0.15-----继承和多态
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/5741057.html
Copyright © 2011-2022 走看看