`

FreeMarker 对null值的处理

阅读更多
以下引用官方描述:

The FreeMarker template language doesn't know the Java language null at all. It doesn't have null keyword, and it can't test if something is null or not.


1.判断是否存在,通过exists关键字或者"??"运算符。都将返回一个布尔值
user.name?exists 
user.name?? 
Html代码  收藏代码
<#if user.name?exists>  
 //TO DO  
</#if>  
  
<#if user.age??>  
 //TO DO  
</#if>  



2.忽略null值
假设前提:user.name为null 
${user.name},异常 
${user.name!},显示空白 
${user.name!'vakin'},若user.name不为空则显示本身的值,否则显示vakin 
${user.name?default('vakin')},同上 
${user.name???string(user.name,'vakin')},同上



eg:当outCar.startNumberKm为空时则取startNumberKmByLast作用域中的值
<div class="grid_5 lable-right">
		     <label class="form-lbl">起始公里数(km):</label>
			</div>
			<div class="grid_6">
				<input type="text" name="startNumberKm" id="startNumberKm" maxlength="10"
			      value="${outCar.startNumberKm!'${startNumberKmByLast}'}"  class="form-txt" />
			</div>
			<div class="grid_1"><em class="form-req">*</em></div>
分享到:
评论

相关推荐

    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