原本运行的好好的jsp文件,重启了项目突然无法显示了。后台没有报错,页面也没有报错,就是直接页面只加载了一部分,然后后面的代码没了,直接懵逼了。由于我之前刚注释了一些代码,本能反应是注释导致的问题,于是放开注释再试了一下,还是不行。然后只能在庞大的jsp代码中找各种用到el表达式的地方,看看哪里可能会出问题。初看了一遍不行,就到测试服务器上试了一下,发现测试服务器也出现了相同问题。然后看到上面只显示了表格中第一行的一部分,而且这行数据是新加的。我想应该就是这里出问题了。
于是到数据库中一查,发现新加的数据跟别的数据有一项不同:createTime为空!然后又看了看jsp里相应的地方:
<td>
<jsp:useBean id="modelDate" class="java.util.Date"/>
<c:set target="${modelDate}" property="time" value="${model.createTime}"/>
<fmt:formatDate pattern="yyyy-MM-dd" value="${modelDate}" type="both"/>
</td>
这就很明了了,createTime为null,但是jsp调用了这个值,导致出错了。但是关键是出错了竟然没有任何报错!这就是jsp可怕的地方:出问题了不知道问题出在哪里,只能瞎猜,一点点排查。如果是复杂页面的话,将相当痛苦。其实我这已经算比较复杂的页面了,好在比较熟悉,维护了很久,要不然得哭死。 |