Java模板引擎之Freemarker

导入相关Jar包

 <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.22</version>
        </dependency>

测试类

public class FreemarkerTest {
    @Test
    public void testFreeMarker() throws IOException, TemplateException {
        //1.把freemarker的jar包添加到工程中
        //2.freemarker的运行不依赖web容器,可以再java工程中运行
        //3.创建一个Configuration对象
        Configuration configuration = new Configuration(Configuration.getVersion());
        //4.设置config对象模板文件存放的路径
        configuration.setDirectoryForTemplateLoading(new File("E:\\workspace\\logistics\\src\\main\\webapp\\WEB-INF\\ftl"));
        //5.设置config的默认字符集
        configuration.setDefaultEncoding("utf-8");
        //6.从config对象中获得模板对象。需要指定一个模板文件的名称、
        Template template = configuration.getTemplate("first.ftl");
        //7.创建模板所需要的数据集 可以是map 也可以是pojo
        Map root = new HashMap();
        root.put("hello", "hello,freemarker");
        root.put("user", new User("jack",23));
        root.put("strs",new String[]{"a","b","c"});
        List<User> users=new ArrayList<User>();
        users.add(new User("a1",21));
        users.add(new User("a2",22));
        users.add(new User("a3",23));
        root.put("users",users);
        root.put("date",new Date());
        //8.创建一个writer对象,指定生成的文件保存的路径及文件名
        Writer out = new FileWriter(new File("E:\\workspace\\logistics\\src\\main\\webapp\\WEB-INF\\ftl\\hell.html"));
        //9.调用模板对象的process方法生成静态文件
        template.process(root, out);
        //10.关闭writer对象
        out.flush();
        out.close();
    }
}

模板

<html>
<head>
    <meta charset="utf-8">
    <title>freemarker</title>
</head>
<body>
<h1>取简单数据</h1>
<h2>使用el表达式</h2>
${hello}
<h2>取包装数据类型</h2>
${user.name}
${user.age}
<h2>遍历集合和数组</h2>
<#list strs as str>
    ${str_index}
    ${str}
</#list>
<#list users as user>
    ${user.name}/${user.age}
</#list>
<h2>判断条件</h2>
<#if 1==2>
1==2
<#else>
1!=2
</#if>
<h2>格式化日期</h2>
${date?date}
${date?datetime}
${date?time}
${date?string("yyyy-MM-dd HH:mm:ss")}
<h2>null处理</h2>
<P>在jsp中会自动忽略而freemarker不会</P>
${asdfs!"默认值"}
${asd123fs!""}
<#if date ??>
${date?string("yyyy-MM-dd HH:mm:ss")}
<#else>
日期不存在
</#if>
<h2>include</h2>
<#include "second.ftl"/>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值