我正在尝试访问String [] []数组的长度属性,但获取NumberFormatException
。
我的JSP代码
<c:set var="len" value="${Constants.CATEGORIES.length}"/>
<c:forEach var="i" begin="1" end="${len}" step="1" varStatus ="status">
<a class="list-group-item" href="">${Constants.CATEGORIES[i][0]}</a>
</c:forEach>
下面是stacktrace
java.lang.NumberFormatException: For input string: "length"
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
java.lang.Integer.parseInt(Integer.java:580)
java.lang.Integer.parseInt(Integer.java:615)
javax.el.ArrayELResolver.coerce(ArrayELResolver.java:151)
javax.el.ArrayELResolver.getValue(ArrayELResolver.java:64)
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
org.apache.el.parser.AstValue.getValue(AstValue.java:169)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:115)
org.apache.jsp.WEB_002dINF.view.shared.categories_jsp._jspx_meth_c_005fset_005f0(categories_jsp.java:146)
org.apache.jsp.WEB_002dINF.view.shared.categories_jsp._jspService(categories_jsp.java:107)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
org.apache.jsp.WEB_002dINF.view.home.index_jsp._jspService(index_jsp.java:133)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.raghavpro.bookhive.controllers.home.IndexServlet.doGet(IndexServlet.java:76)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
有任何线索吗?
答案 0 :(得分:3)
我使用JSTL函数length
解决了同样的问题。
在JSP的开头添加taglib:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
然后,在您的JSP中,您可以执行${ fn:length(Constants.CATEGORIES) }
答案 1 :(得分:0)
端=&#34; $ {长度}&#34;似乎不包含该值,而是传递字符串&#34; length&#34;因此例外
java.lang.NumberFormatException: For input string: "length"
检查表达式end =&#34; $ {length}&#34;