在JSTL中使用EL表达式时,明明有一个引用是null,但是用这个引用调用了equals方法 ,却没有抛出空指针异常
代码如下:
<%
request.setAttribute("name",null);
%>
<c:if test="${requestScope.name.equals('')}">
1111
</c:if><br>
在仔细查看了Tomcat8.5中的底层源码后发现:
requestScope.name为null时,会直接返回一个false,而不会再去调用equals方法
验证代码:直接将equals的调用去掉,我们可以发现是会打印1111的
<c:if test="${!(requestScope.name)}">
1111
</c:if><br>