JSTL---Servlet.service() for servlet action threw exceptionjavax.el.MethodNotFoundException Method size
背景
最近在项目测试的时候,发现有的JSP页面有时会出现如下错误:
JSTL--- Servlet.service() for servlet action threw exceptionjavax.el.MethodNotFoundExceptionMethod size
原因
EL表达式语法错误,页面中绑定数据使用的是JSTL,所以有时会出现判空的情况写法如下:
<c:if test = “${list.size>0}”> …… </c:if>
而EL表达式并不支持${list.size>0}这种写法。
解决方法
其实,JSTL是有相关的函数支持获取集合的大小大。我们需要再引入一个标签
<%@taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%> <%@taglib prefix="fn"uri="http://java.sun.com/jsp/jstl/functions"%>
EL表达式的正确写法
<c:if test = “${fn:length(list)}”> …… </c:if>
更多的知识大家可以去下面的链接地址看看:
JSTL官网:https://jstl.java.net/
开源中国JSTL社区:http://www.oschina.net/question/tag/jstl
JSTL标签库:http://www.runoob.com/jsp/jsp-jstl.html