freemarker中表达式 ${(user.name)!""}当user为空时,直接报错,咋回事?

2025-05-09 02:37:05
推荐回答(3个)
回答1:

FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出,用FreeMarker判断对象是否为空的方法。

  1. 一般数据在后端判断, 前端不管逻辑只管显示。

  2. freemarker中显示某对象使用${name}.
    但如果name为null,freemarker就会报错。如果需要判断对象是否为空:<#if name??>……。当然也可以通过设置默认值${name!""}来避免对象为空的错误。如果name为空,就以默认值(“!”后的字符)显示。

  3. 对象user,name为user的属性,这时user,name都有可能为空,可以写成${(user.name)!""},表示user或者name为null,都显示为空。

回答2:

同意楼上的解释,代码这样改就可以了:
<#if user??>
${(user.name)!""}

回答3:

user为空不报错才怪呢??

user对象存在的时候,你才能访问它的属性 啊,否则有什么意义