为什么$ {!blabla.blibli}在JSTL中返回true,即使blabla不存在?

时间:2015-06-16 10:06:06

标签: java jsp jstl

正如标题中提到的,我不明白为什么当变量blabla不存在时我有:

${blabla.blabla}不返回任何内容

${!blabla.blabla}返回true

我想在jstl评估中有一个隐式异常catch但是我无法理解内部进程以及为什么它会像这样工作,特别是当我们使用语言时:not empty和其他检查器组件。背后的逻辑是什么?

1 个答案:

答案 0 :(得分:1)

JSP ELNULL友好的,如果找不到给定属性或表达式返回null,它不会抛出任何异常。

对于算术运算, EL 将null视为0,对于逻辑运算,EL将null视为false

所以当你在尝试"!"对于未找到的变量,它返回true

希望这有帮助!