如何比较 EL 表达式中的 net.sf.json.JSONObject.NULL 常量

How to compare to net.sf.json.JSONObject.NULL constant in EL expression

我正在使用 net.sf.json.JSONObject。 JSON 对象中的 null 值不等同于 Java null。语句 <c:if test='${not empty obj.value}'> 无效。有什么办法可以比较JSTL标签中的JSONnull吗?

如果您已经在 EL 3.0+ 上,那么您可以按如下方式进行操作:

<%@ page import="net.sf.json.JSONObject" %>
...
<c:if test="${JSONObject.NULL eq obj.value}">

如果你还没有使用 EL 3.0,因此不能像上面给出的那样将常量导入 EL 范围,那么使用下面给出的解决方法,它基本上检查 Class#getSimpleName():

<c:if test="${obj.value['class'].simpleName eq 'JSONNull'}">