正如标题中提到的,我不明白为什么当变量 blabla 不存在时我有:
${blabla.blabla}
什么都不返回
和
${!blabla.blabla}
返回 true
我猜想在 jSTL 评估中有一个隐式异常捕获,但我无法理解内部过程以及为什么它会这样工作,尤其是当我们使用以下语言时:not empty
和其他检查器组件。背后的逻辑是什么?
最佳答案
JSP EL
是NULL
友好的,如果给定的属性没有找到或者表达式返回null
,它不会抛出任何异常。
对于算术运算,EL 将 null 视为 0
,对于逻辑运算,EL 将 null
视为 false
.
所以当你尝试“!”对于未找到的变量,它返回 true
希望这对您有所帮助!
关于java - 为什么 ${!blabla.blibli} 在 JSTL 中返回 true 即使 blabla 不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30864500/