`

FreeMarker对null值的处理

阅读更多

!对输出的空值做处理,只输出无返回值

输出name的值:${name}。如果name为null,就会报错。

输出name的值:${name!}。如果name为null,就不会报错,什么也没输出。(重点)

输出name的值:${name!"默认值"}。如果name为null,就输出”默认值”字符串。(重点)

输出name的值:${name!100}。如果name为null,就输出100。

输出user.name的值:${(user.name)!"默认值”},如果user或name为null,就输出默认值。(重点)

输出user.name的值:${user.name!"默认值”},如果user为null会报错,如果name为null,就输出默认值。

使用default内建函数来处理:${user.name?default('vakin')}  (较繁琐)

 


??测试是否为null,返回boolean值 


product.color??将只测试color是否为null


(product.color)??将测试product和color是否存在null 


 

freemarker中??和?的区别

??是判断对象是否为空,例如:<#if object??>object对象不为空(即object存在)</#if>

?后面要加内建函数名,例如:<#if object?exists>object对象不为空(即object存在)</#if>

<#if str??>${str?string}</#if><#--将str以字符串形式显示-->

 

freemarker的内建函数

${nowDate?time}<#--将现有时间以时间的格式显示,显示结果如:15:13:05-->

${nowDate?date}<#--以日期格式显示,如:2011-4-28-->(date的格式可以在freemarker.properties文件中配置)

日期格式化 ${time?string("yyyy-MM-dd")}

截取字符串 ${str?substring(0,2)}

indexof的使用 ${str?last_index_of(",")}

split的使用

<#list "12,13,14,15"?split(",") as item>

${item}

</#list>

 

${s?if_exists}

${item_index?if_exists+1}

${user.name?default('vakin')},同上 

 

freemarker运算符

<#if score gte 60>

 及格

<#elseif score gte 80 && score lte 90>

良好

<#else>

高材生

</#if>

分享到:
评论

相关推荐

    freemarker-2.3.22

    9. **最佳实践**:合理组织模板文件结构、避免模板过于复杂、正确处理null值等都是使用Freemarker时需要注意的最佳实践。 通过这个压缩包提供的资源,开发者可以全面地学习和使用Freemarker,无论是初学者还是经验...

    FreeMarker手册

    比如,它会比较FreeMarker和其他模板引擎(如JSP和Velocity)的不同,并解释为什么FreeMarker对null值和不存在的变量敏感,并提供处理方法。此外,FAQ部分还会解答关于数字格式、小数和分组分隔符号显示问题,以及...

    freemarker 内置的几个处理

    以下是对这些内置处理的详细说明: 1. **变量表达式** (`${...}`): FreeMarker的变量表达式用于输出Java对象的属性值。例如,`${user.name}`会尝试获取`user`对象的`name`属性并输出。如果属性不存在或者对象为...

    freemarker中文手册

    3. 模板处理:Freemarker引擎接收模板和数据模型,然后生成最终的输出文本。 二、Freemarker语法 1. 变量输出:使用`${}`包裹变量名,例如`${name}`,会将对应数据模型中的`name`属性值输出。 2. 注释:使用`注释...

    freemarker语法完整版

    - 节点变量表示树形结构中的一个节点,主要用于XML处理。 #### B. 指令 **1. if, else, elseif** - `&lt;#if condition&gt;` 结构用于条件判断。 - 支持多个 `&lt;#elseif&gt;` 分支。 - 可选的 `&lt;#else&gt;` 分支。 - 示例:...

    freemarker资料集

    对复杂的逻辑处理能力有限,不适合做大量业务处理。 5. **内置函数及用法**: FreeMarker提供了丰富的内置函数,如`date`, `number`, `string`等类型的操作,以及`join`, `length`, `sort`, `first`, `last`等集合...

    freemarker中文文档

    - **空白处理**指的是对模板中的空格、制表符、换行符等空白字符的处理。 - **Freemarker**提供了多种空白处理模式,可以根据需要选择合适的处理方式。 ##### 4.5 替换(方括号)语法 - **方括号语法**是**...

    freemarker官方中文帮助文档

    4. **指令**:Freemarker支持一系列指令,如`&lt;#assign&gt;`分配变量,`&lt;#include&gt;`包含其他模板,`&lt;#nested&gt;`处理子模板等,它们扩展了模板的功能。 5. **模板继承与布局**:`&lt;#macro&gt;`定义宏,实现代码复用;`...

    FreeMarker笔记1

    null 处理 当对象为null时,可以使用`??`操作符避免空指针异常: ```freemarker ${user.name?default("匿名用户")} ``` ### 10. 提示方式 在模板中显示提示信息,可以通过占位符配合数据模型中的错误信息: ```...

    freemarker_常用内置函数

    #### 八、处理null值 为了避免在模板中使用可能为null的变量时出现黄色警告,可以使用默认值。 ```html ${(item.title)!"一些默认值"} ``` #### 九、调用Java方法 Freemarker可以直接调用Java中的方法,例如获取...

    Freemarker学习总结.pdf

    以下是对Freemarker中Sequence、Hash以及字符串操作函数的详细说明。 一、Sequence的内置函数: 1. `sequence?first`:返回Sequence的第一个元素,如果Sequence为空,返回null。 2. `sequence?last`:返回Sequence...

    freeMarker语法

    1. 变量表达式 `${...}`:这是FreeMarker中最基本的表达式,用于输出变量的值。例如`${user.name}`会输出用户对象的name属性。 2. 注释 `&lt;!--#...--&gt;`:FreeMarker支持HTML样式的注释,内容不会被渲染到最终输出。 ...

    FreeMarker基础语法

    FreeMarker支持对序列(如列表)进行循环处理,同时提供了`break`语句用于提前终止循环。 ```fml ... // 处理每个item 特定值"&gt; &lt;#break&gt; // 当遇到特定值时,跳出循环 ``` ### 3. 包含文件 #### include ...

    freemarker总结

    这里所说的空值,实际上也包括那些并不存在的变量,对于一个Java的 null值而言,我们认为这个变量是存在的,只是它的值为null,但对于FreeMarker模板而言,它无法理解null值,null值和不存在的变 量完全相同. 为了处理缺失...

    freemarker04

    "freemarker04_空值的处理"这个主题,正是关注如何在Freemarker模板中优雅地处理这些空值,避免因空值导致的异常或不期望的输出。 1. **空值检查** 在Freemarker模板中,可以使用`?has_content`指令来判断变量是否...

    freemarker

    - 自定义空值处理,通过`freemarker.template.Configuration`设置`NullModel`。 7. **示例**: - 基本输出:`${user.name}`,输出用户对象的name属性。 - 条件判断:`管理员:普通用户:&lt;/#if&gt;`。 - 循环遍历:`$...

    3freemarker指令1

    以下是对`3freemarker指令1`中涉及知识点的详细说明: 1. **ftl的if/else判断语句**: 在Freemarker模板语言中,`if`和`else`指令用于条件判断。基本语法如下: ```freemarker &lt;!-- 当expression为真时执行的...

    freemarker05

    7. **空值(Null)**: 当变量不存在或者值为null时,Freemarker会将其视为`null`。你可以检查一个变量是否为空,如`${variable?exists}`。 8. **模板文本(TemplateText)**: 这是Freemarker特有的数据类型,用于表示未...

    freemarker 语法大全 文档

    - Web环境中的变量查找顺序:Freemarker会按照特定顺序查找模板中的变量值。 - 使用FTL标签:在模板中可以与服务器端标签库配合使用。 - 初始化共享变量:在应用启动时设置全局变量。 - 与WebWork整合:配置...

Global site tag (gtag.js) - Google Analytics