8

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

我知道我可以做类似的事情

#{obj == null ? 'None' : obj.property}

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

我正在寻找类似的东西

#{default(obj.property, 'None')}
4

2 回答 2

8

EL中不存在这样的东西。不是现在,也不是将来

您最好的选择是创建自定义 EL 函数。

#{my:def(obj.property, 'None')}

(注意:作为defaultJava 关键字/文字,在 EL 中使用该名称作为函数名称是无效的)

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

也可以看看:

于 2012-09-11T19:10:54.753 回答
2

在某些情况下,您可以使用它:

<c:out value="${obj.property}" default="None"/>

这里建议)

于 2014-12-19T07:47:28.550 回答