zoukankan      html  css  js  c++  java
  • Freemaker的了解

    freemarket 模板技术

    与web容器没什么关系

    可以用struct2作为视图组件

     

    第一步导入jar包

    项目目录下建立一个templates目录

    在此目录下建立一个模板文件a.ftl文件

     

    Java代码

    创建实例 –创建模板目录—创建数据模型(树状的)--加载模板文件--- 生成数据(需要一个输出流)

     

    import java.io.File;

    import java.io.OutputStreamWriter;

    import java.io.Writer;

    import java.util.HashMap;

    import java.util.Map;

     

    import freemarker.template.Configuration;

    import freemarker.template.Template;

     

    public class Test_two {

        public static void main(String[] args) throws Exception {

            //创建freemarker配置实例

            Configuration cfg=new Configuration();

            //创建模板目录

            cfg.setDirectoryForTemplateLoading(new File("templates"));

            

            //创建数据模型

            Map root=new HashMap();

            root.put("user", "老程");

            //加载模板文件

            Template t1=cfg.getTemplate("a.ftl");

            

            //显示生成的数据//map里的数据和模板合并到一起

            Writer out=new OutputStreamWriter(System.out);

            t1.process(root, out);

            out.flush();

            out.close();

            

            

        }

    }

    <#if user=="老高">我们的老师</#if>

    数据类型

    Gt大于

    Gte大于等于

    遍历集合

    <#list lst as dizi>

    <b>${dizhi..}</b><br/>

    </#list>

    包含指令

    <#include "filename"/>

    定义宏指令

    <#macro ml>

        <b>aaabb</b>

        <b>aaabb</b>

    </#macro>

    调用宏:<@ml />

    也可传递参数,并对带参数操作

     

    Nested指令

    <#macro border >

    <table border=4 cellspacing=0 cellpadding=4><tr><td>

    <#nested>

    </td></tr></table>

    </#macro>

    <@border > 表格中的内容</@border>

    <#assign mail="111.cpm">定义变量的

    命名空间

    <#improt "filename" as bb/>

    可以通过 in bb 给bb里的东西赋值

     

    时间对象的格式化

    ${date?string("yyyy-MM-dd HH:mm:ss")}

     

    FreeMarker提供两个运算符来避免空值:
    1. !: 指定缺失变量的默认值;
    2. ??:判断变量是否存在。
    !运算符有两种用法:variable!或variable!defaultValue。第一种用法不给变量指定默认值,表明默认值是空字符串、长度为0的集合、或长度为0的Map对象。
    使用!运算符指定默认值并不要求默认值的类型和变量类型相同。

    测试空值处理:

    <#-- ${sss} 没有定义这个变量,会报异常! -->

    ${sss!} <#--没有定义这个变量,默认值是空字符串! -->

    ${sss!"abc"} <#--没有定义这个变量,默认值是字符串abc -->

     

        ??运算符返回布尔值,如:variable??,如果变量存在,返回true,否则返回false。

        

  • 相关阅读:
    HTML 5 标准属性
    启程
    【Java】自定义登陆拦截器
    【Java】将List中的实体按照某个字段进行分组的算法
    SpringBoot + MultipartFile 实现文件上传以及文件转移的功能以及配置全局捕获上传文件过大异常
    MySQL查询两门及两门以上不及格的学生,显示姓名
    java中可以用==来比较两个字符串是否相等吗
    自己动手Jquery插件
    10个可以直接拿来用的JQuery代码片段
    linux 安装python
  • 原文地址:https://www.cnblogs.com/chengzhipcx/p/5019221.html
Copyright © 2011-2022 走看看