`

freemarker中判断值为null

阅读更多

如:类别的父类(category.parentCategory)为空,freemarker中会出异常category.parentCategory is undefined的异常。

解决办法:

 

${(category.parentCategory.id)!0} 

 

加括号代表category, category.parentCategory, category.parentCategory.id这三个都会进行判断

 

不加括号只判断category.parentCategory.id是否为null,如果category.parentCategory就为null了,最后还是会出现异常,所以要加上括号。感叹号后面的0是默认值,为null是值为0。

 

还有一种是

<#if list?exists && list.size != 0 >

 

 

注意:在freemarker中parent貌似是关键字(网上没找到),因为要是${category.parent} 这样即使也不为null,照样报异常,改成parentCategory就正常了,有待大家验证!

分享到:
评论
1 楼 杨柳java 2011-11-30  
不错  今天碰到了   谢谢

相关推荐

    freemarker判断对象是否为空的方法

    现在,我们已经了解了在FreeMarker中判断对象是否为空的各种方法,包括使用`&lt;#if&gt;`、`?`、`!`、`??`和`?exists`。这些工具使得我们能够在模板中安全地处理可能为空的对象和属性,避免了因引用空值而引发的错误。在...

    freemarker官方中文帮助文档

    模板中的变量引用 `${variable}` 将匹配数据模型中的对应值。 4. **指令**:Freemarker支持一系列指令,如`&lt;#assign&gt;`分配变量,`&lt;#include&gt;`包含其他模板,`&lt;#nested&gt;`处理子模板等,它们扩展了模板的功能。 5. *...

    freemarker中文文档

    - **插值**是**FreeMarker**模板中的一个特性,允许在文本中插入变量或表达式的值。 - 插值的基本形式为 `${expression}`,其中 `expression` 可以是任何有效的**FreeMarker**表达式。 #### 四、其它 ##### 4.1 ...

    freemarker语法完整版

    判断对象是否为 null** - `&lt;#if mouse?exists&gt;` 判断变量是否存在。 - 示例: ```freemarker Mouse found No mouse found ``` **6. 模板值插入方式** - `${expression}` 通用插值方式。 - `#{...

    freemarker_常用内置函数

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

    freemarker资料集

    FreeMarker支持条件语句(`&lt;#if&gt;`, `&lt;#else&gt;`, `&lt;#elseif&gt;`)和循环(`&lt;#list&gt;`)等控制流,允许在模板中进行条件判断和迭代。 7. **指令(Directives)**: 指令用于控制模板的结构和行为,如`include`用于包含...

    3freemarker指令1

    在Freemarker模板语言中,`if`和`else`指令用于条件判断。基本语法如下: ```freemarker &lt;!-- 当expression为真时执行的内容 --&gt; &lt;!-- 当expression为假时执行的内容 --&gt; ``` `expression`可以是任何...

    Freemarker学习总结.pdf

    6. `ends_with(substring)`:判断字符串是否以指定的子串结尾,返回布尔值。 7. `html`:将字符串中的特殊字符转换为HTML实体,防止XSS攻击。 8. `index_of(substring, [start])`:查找子串在字符串中的位置,返回...

    FreeMarker笔记1

    例如,如果在数据模型中有一个名为`name`的对象,可以使用`${name}`将其值插入到模板中。 ### 2. 遍历 List 对于List类型的集合,可以使用`&lt;#list&gt;`指令来遍历。例如: ```freemarker 用户名:${user.name} ``` ...

    freeMarker语法

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

    FreeMarker基础语法

    FreeMarker提供了一种简单的方式来检查变量是否为空或`null`。 #### 表达式转换 FreeMarker支持各种表达式的转换,包括算术运算、比较运算等。 ### 结论 FreeMarker是一个强大的模板引擎,它提供了丰富的语法特性...

    freemarker05

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

    freemarker 语法大全 文档

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

    freemarker04

    通过创建一个`freemarker.template.Configuration`实例,并设置`nullValue`属性,可以指定当变量为`null`时显示的字符串。 6. **条件语句** 使用`&lt;#if&gt;`、`&lt;#else&gt;`和`&lt;#elseif&gt;`可以构建复杂的条件逻辑,处理各种...

    Freemarker使用指南

    3. 检测空值:`&lt;#if mouse??&gt;`判断mouse是否为null。 4. 条件判断:`&lt;#if condition&gt;`、`&lt;#elseif condition2&gt;`、`&lt;#else&gt;`构建条件分支结构,`&lt;#switch&gt;`和`&lt;#case&gt;`可以实现类似switch-case的逻辑判断。 5. 遍历:...

    freemarker

    string`转换为字符串,避免输出null。 - `?html`防止XSS攻击,自动转义特殊字符。 - `?eval`执行OGNL表达式。 5. **与Web环境的交互**: - Freemarker可以直接获取HTTP请求和会话中的数据,如`${requestScope....

    java freemarker学习文档

    - **视图中的值搜索顺序**:了解Freemarker在查找变量值时的层次结构。 - **FTL标签的使用**:如何在模板中使用自定义或预定义的FTL标签。 - **初始化共享变量**:在Web环境中如何初始化全局变量。 - **与...

    freemarker(语法+实例)

    - **对象判空**:可以判断对象是否为null,避免空指针异常。 - **日期格式化**:提供了日期格式化的方法。 - **全局共享变量**:在模板级别或应用级别设置共享变量。 - **调用Java对象方法**:可以直接在模板中...

Global site tag (gtag.js) - Google Analytics