JSF EL - 用默认值替换null

wrs*_*der 8 null jsf el

有没有办法用JSF EL表达式中的默认值替换null,有点像Oracle NVL函数?

我知道我可以做点什么

#{obj == null ? 'None' : obj.property}
Run Code Online (Sandbox Code Playgroud)

但希望有一种自动方式可以做到这一点,所以我不会复制/粘贴三元Elvis运算符两侧的相同表达式.

我正在寻找类似的东西

#{default(obj.property, 'None')}
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 8

EL中没有这样的东西.不是现在,也不是将来.

您最好的选择是创建自定义EL功能.

#{my:def(obj.property, 'None')}
Run Code Online (Sandbox Code Playgroud)

(注意:与defaultJava关键字/文字一样,在EL中使用此名称作为函数名称无效)

如果您碰巧使用JSF实用程序库OmniFaces,那么您可以#{of:coalesce()}用于确切的目的.

也可以看看: