为什么 ${!blabla.blibli} returns 在 JSTL 中为真,即使 blabla 不存在?
Why ${!blabla.blibli} returns true in JSTL even if blabla doesn't exist?
正如标题中提到的,我不明白为什么当变量 blabla 不存在时我有:
${blabla.blabla}
returns 没什么
和
${!blabla.blabla}
returns 真
我猜想在 jstl 评估中有一个隐式异常捕获,但我无法理解内部过程以及为什么它会这样工作,尤其是当我们使用以下语言时:not empty
,和其他检查器组件。背后的逻辑是什么?
JSP EL
是 NULL
友好的,如果找不到给定的属性或表达式 returns null
,它不会抛出任何异常。
对于算术运算,EL将null视为0
,对于逻辑运算,EL将null
视为false
.
所以当你尝试“!”对于未找到的变量 returns true
希望对您有所帮助!
正如标题中提到的,我不明白为什么当变量 blabla 不存在时我有:
${blabla.blabla}
returns 没什么
和
${!blabla.blabla}
returns 真
我猜想在 jstl 评估中有一个隐式异常捕获,但我无法理解内部过程以及为什么它会这样工作,尤其是当我们使用以下语言时:not empty
,和其他检查器组件。背后的逻辑是什么?
JSP EL
是 NULL
友好的,如果找不到给定的属性或表达式 returns null
,它不会抛出任何异常。
对于算术运算,EL将null视为0
,对于逻辑运算,EL将null
视为false
.
所以当你尝试“!”对于未找到的变量 returns true
希望对您有所帮助!