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。

    

Freemaker的了解的更多相关文章

  1. freemaker时间格式转换,精确到毫秒

    在开发中,需要将时间以 2016-09-20 12:00:01:723 的形式里用freemaker展示在页面上,找了好久,终于找到了答案. "createTime":" ...

  2. FreeMaker实现变量求和

        今天在项目上遇到统计分页页面的某个字段的总和,前台页面是使用FreeMaker实现的,记录一下: <#assign tprice = 0 > <#list orderlist ...

  3. 【FreeMaker】FreeMaker学习-基础

    转载请标明出处:http://www.cnblogs.com/ssslinppp 阅读目录 -04-08 08:08:08 Pacific Daylight Time Tue, Apr 8, '03 ...

  4. 【freemaker】之FreeMakerUtil工具类

    Freemaker生成文件常用工具类 public class FreemakerUtil { private static FreemakerUtil util; private static Co ...

  5. 【freemaker】之整合springMVC

    pom.xml文件 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncod ...

  6. 【freemaker】之eclipse安装freemaker-IDE

    eclipse安装插件一般我喜欢手动安装,有种可控的感觉! 首先需要下载freemaker-IDEhttp://freemarker-ide.sourceforge.net/ 下载之后解压得到 在ec ...

  7. 【freemaker】之Unknown built-in variable: now

    Caused by: freemarker.core.ParseException: Unknown built-in variable: now 意思是没有内置变量,看了一下源码2.3.15版本fr ...

  8. freemaker分页备忘

    思路:定义一个freemaker宏,接收参数.然后在freemaker页面上import这个文件,把参数传进来在server端渲染. 分页标签:pager.ftl <#-- 自定义的分页指令. ...

  9. freemaker的基本语法

    先来解释一下freemaker的基本语法了,<# ... > 中存放所有freemaker的内容,之外的内容全部原样输出.<@ ... /> 是函数调用两个定界符内的内容中,第 ...

  10. 表现层技术以及Freemaker使用教程

    表现出计数以及Freemaker详解 在java领域,表现层技术主要有三种:jsp.freemarker.velocity.jsp是大家最熟悉的技术优点: 1.功能强大,可以写java代码 2.支持j ...

随机推荐

  1. ccf-20170303--Markdown

    我的想法如下图: 代码和题目如下: 问题描述 试题编号: 201703-3 试题名称: Markdown 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 Markdown 是一 ...

  2. Kali下Ettercap 使用教程+DNS欺骗攻击

    一.Ettercap 使用教程 EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具.它具有动态连接嗅探.动态内容过滤和许多其他有趣的技巧.它支持对许多协议的主动和被动分析,并包含许多用于网络和 ...

  3. Orcale日期函数to_date(),to_char()

    日期转换的两个函数分别是to_date()和to_char(),to_date() 作用将字符类型按一定格式转化为日期类型, to_char() 将日期转按一定格式换成字符类型 其中当时间需要精确的时 ...

  4. Git的上传步骤

    Git的上传步骤 1.Git的命令基础 Git是当下最流行的版本控制工具(VCS),由linux系统之父linus开发.它能实现 团队中的代码协作开发,它在代码同步和代码管理方面功能强大,理念先进. ...

  5. js中Math之random,round,ceil,floor的用法总结

    1.Math.random(); 结果为0-1间的一个随机数(包括0,不包括1) 2.Math.floor(num); 参数num为一个数值,函数结果为num的整数部分(返回小于等于n的最大整数). ...

  6. nginx服务器常见错误代码500、501、502、503、504、505

    一:500错误 1.500 Internal Server Error 内部服务错误:顾名思义500错误一般是服务器遇到意外情况,而无法完成请求. 2.500出错的可能性: a.编程语言语法错误,we ...

  7. github(1)安装及使用图文详解

    教程https://blog.csdn.net/qq_32166627/article/details/54427622 下载地址:https://desktop.github.com/

  8. 20145203盖泽双 《网络对抗技术》实践1—— MAL_逆向与Bof基础

    20145203盖泽双 <网络对抗技术> MAL_逆向与Bof基础 实践目标 (1)我们要通过修改程序代码,使得程序运行其自身中本不该运行的代码片段. (2)在这里,我们有一个名为2014 ...

  9. Spring容器IOC解析及简单实现(转)

    文章转自http://blog.csdn.net/liushuijinger/article/details/35978965

  10. <数据结构与算法分析>读书笔记--运行时间中的对数及其分析结果的准确性

    分析算法最混乱的方面大概集中在对数上面.我们已经看到,某些分治算法将以O(N log N)时间运行.此外,对数最常出现的规律可概括为下列一般法则: 如果一个算法用常数时间(O(1))将问题的大小削减为 ...