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

标签 java jsp jstl

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

${blabla.blabla} 什么都不返回

${!blabla.blabla} 返回 true

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

最佳答案

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

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

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

希望这对您有所帮助!

关于java - 为什么 ${!blabla.blibli} 在 JSTL 中返回 true 即使 blabla 不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30864500/

相关文章:

java - 无法使用 JSTL 调用参数化函数

java - 从 forEach 循环内的代码访问 JSTL 标签

java - 使用自动换行将字符串 ArrayList 打印到 PrintWriter

java - 在 PRG 模式中如何在刷新成功页面上删除 ActionMessage

java - 为什么我输入的某些部分没有被相应的字符替换?

java - 在文件内排序

java - 使用 js/jquery/java/active x 或其他方式拍摄 <div> 的快照?

java - 如何在 JSTL 中检查对象是 String 还是 Collection?

java - 尝试在 canvas textureview android 上绘制时出现空指针异常?

Java将字符串列表写入文件,但文件为空