FreeMarker 语法 null 的处理

一、java 代码

@Test
public void testFreeMarker() throws Exception {
    //1、创建一个模板文件
    //2、创建一个Configuration对象
    Configuration configuration = new Configuration();
    //3、设置模板文件保存的目录
    configuration.setDirectoryForTemplateLoading(new File("E:/workspaces/fw-item-web/src/main/webapp/WEB-INF/ftl"));
    //4、模板文件的编码格式,一般就是utf-8
    configuration.setDefaultEncoding("utf-8");
    //5、加载一个模板文件,创建一个模板对象。
    Template template = configuration.getTemplate("testNull.ftl");
    //6、创建一个数据集。可以是pojo也可以是map。推荐使用map
    Map data = new HashMap<>();
    
    //添加 null 值
    data.put("val", null);
    
    //7、创建一个Writer对象,指定输出文件的路径及文件名。
    Writer out = new FileWriter(new File("E:/freemarker/testNull.html"));
    //8、生成静态页面
    template.process(data, out);
    //9、关闭流
    out.close();
}

二、testNull.ftl

<html>
<head>
    <title>time</title>
</head>
<body>
    null 值的处理方式一:${val!"默认值"}<!--给 null 一个默认值--><br><br>
    
    null 值的处理方式二:<br>
    <#if val??>
        val 中有值
    <#else>
        val 为 null
    </#if>
</body>
</html>

三、结果

原文地址:https://www.cnblogs.com/fangwu/p/8696390.html