zoukankan      html  css  js  c++  java
  • 【freemaker】之判断是否为空,表达式的使用

    测试代码

        @Test
        public void test05(){
            try {
                freemakerUtil.fprint(root, "05.ftl",fn+"05.html");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    ftl模版文件

    <#--加个感叹号可以解决为空的问题-->
    ${(emp.group)!}
    <#--加上括号,感叹号解决对象导航为空的问题-->
    ${(emp.group.name)!"group为空或者name为空"}
    <br/>
    <#--感叹号还可以解决未定义为空的问题-->
    ${(a.b)!("a.b未定义")}
    <br/>
    <#--(a.b)?? 判断a.b是否为空-->
    <#if (a.b)??>
        不为空
        <#else>
        为空
    </#if>
    <br/>
    ${(a.b)???string}

     效果

    原文档的解释如下: 

    在不是顶层变量时,默认值操作符可以有两种使用方式:

    product.color!"red"

    如果是这样的写法,那么在 product 中,当 color 不存在时(返回 ”red” )将会

    被处理, 但是如果连 produce 都不存在时将不会处理。 也就是说这样写时变量 product
    必须存在,否则模板就会报错。

    (product.color)!"red"

    这时,如果当不存在时也会被处理,那就是说如果 product 不存在或者 product
    存在而 color 不存在,都能显示默认值 ”red” 而不会报错。本例和上例写法的重要区别
    在于用括号时,就允许其中表达式的任意部分可以未定义。

  • 相关阅读:
    Angularjs-Forms(表单)
    Angularjs-filter(过滤器)
    Angularjs –– Expressions(表达式)
    Angular
    AngularJS
    AngularJS–Scope(作用域)
    AngularJS–service(服务)
    AngularJS--控制器(Controller)
    AngularJS指南文档
    Web 开发模式演变历史和趋势
  • 原文地址:https://www.cnblogs.com/gyjx2016/p/6023198.html
Copyright © 2011-2022 走看看