博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Freemarker与普通java
阅读量:5287 次
发布时间:2019-06-14

本文共 3192 字,大约阅读时间需要 10 分钟。

package com.sxt.test.freemarker;import java.io.File;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Random;import freemarker.template.Configuration;import freemarker.template.Template;public class Test1 {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", "测试用户");//javabean可以自动转化!类似于我们前面学习的EL表达式!User u = new User();u.setUname("小红");root.put("user1", u);User u2 = new User("小明",new Address("中国","北京"));root.put("user2", u2);//map/list容器List
list = new ArrayList
();list.add(new Address("中国","北京"));list.add(new Address("中国","上海"));list.add(new Address("美国","纽约")); root.put("lst", list);//普通标量??root.put("num0", 18);root.put("b2", true);root.put("date1", new Date());root.put("random", new Random().nextInt(100));root.put("htm2", "粗体");//加载模板文件Template t1 = cfg.getTemplate("a.ftl");//显示生成的数据Writer out = new OutputStreamWriter(System.out);t1.process(root, out);out.flush();}}

2./templates/a.ftl

普通标量测试:<#if num0==18>18岁,成年了!
<#--数字 --><#if user=="测试用户">欢迎你
<#--字符串--><#if b2>b2是true!
<#--布尔值-->${date1?string("yyyy-MM-dd HH:mm:ss")}<#-- ${date1.toString()}????时间怎么处理?? -->-----------------------------------------------普通变量和javabean测试:你好啊,${user},${user1.uname},今天你的精神不错!${user2.uname}来自${user2.addr.city},那里好玩吗?-----------------------------------------------List数据测试:${lst[0].city},${lst[1].city},${lst[2].city},------------------------------------------------内建函数:${htm2?html}-------------------------------------------------测试空值处理:<#-- ${sss} 没有定义这个变量,会报异常! -->${sss!} <#--没有定义这个变量,默认值是空字符串! -->${sss!"abc"} <#--没有定义这个变量,默认值是字符串abc! -->------------------------------------------------if语句测试:${user}是<#if user=="老师">我们的老师
------------------------------------------------if else 语句测试:<#if num0 gt 18> <#--不是使用>,大部分时候,freemarker会把>解释成标签结束! --> 及格!<#else> 不及格!
---------------------------------------------------if else if else语句测试:<#if random gte 90> 优秀!<#elseif random gte 80> 良好!<#else> 一般!
----------------------------------------------------测试list指令:<#list lst as dizhi > dizhi
----------------------------------------------------测试include指令:<#include "included.txt" />----------------------------------------------------<#macro m1> <#--定义指令m1 --> aaabbbccc dddeeefff
<@m1 /><@m1 /> <#--调用上面的宏指令 -->------------------------------------------------------<#macro m2 a b c > ${a}--${b}--${c}
<@m2 a="测试1" b="测试2" c="测试3" />----------------------------------------------------<#macro border>
<#nested>
<@border >表格中的内容!
-------------------------------------------------------测试命名空间:<#import "b.ftl" as bb /><@bb.copyright date="2010-2011" />${bb.mail}<#assign mail="my@163.com" />${mail}<#assign mail="my@163.com" in bb />${bb.mail}

 

转载于:https://www.cnblogs.com/wwzyy/p/5497146.html

你可能感兴趣的文章
拓扑排序-hihocoder1175
查看>>
encodeURIComponent与URLDecoder.decode用法
查看>>
LinkedList 和 ArraryList的区别. <java>
查看>>
大数据学习大纲,大数据应该怎么学
查看>>
HTTP协议学习笔记
查看>>
sublime 打开命令窗口监控
查看>>
ubuntu16.04降级内核版本至3.13.0-85
查看>>
Junit中的异常测试
查看>>
九度OJ 1038:Sum of Factorials(阶乘的和) (DP、递归)
查看>>
DRF之分页器组件
查看>>
JS中this的用法
查看>>
高频交易算法研发心得--MACD指标算法及应用
查看>>
python读写文件
查看>>
使用Visual Studio 2013进行单元测试--初级篇
查看>>
花式索引
查看>>
用python正则提取字符串的方法
查看>>
NHibernate系列学习(三)-条件查询Criteria
查看>>
C++11并发——多线程std::mutex (二)
查看>>
vue router
查看>>
第三次实训作业
查看>>