【发布时间】:2012-07-24 18:20:20
【问题描述】:
我想使用 jstl foreach 循环来显示由我的托管 bean 的属性定义的一定数量的元素:
<c:forEach begin="0" end="#{MyBean.IntegerProperty}" step="1" var="o" >
<h:commandButton value="#{MyBean.IntegerProperty}"></h:commandButton>
</c:forEach>
我的 taglib 声明是:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
但是我得到了这个异常:
...
Caused by: java.lang.NumberFormatException: For input string: "#{MyBean.IntegerProperty}"
...
我在某处读到 foreach 和 EL 彼此之间的合作不太好,如果是这样,那么有人知道将 int 值放在 c:foreach 的 end 属性中的解决方法吗?
提前谢谢你!
【问题讨论】:
-
您使用的是哪个 jstl/el 版本?在早期版本中,延迟表达式(带有
#{}的表达式)是不允许的,这似乎是你的情况。 -
#{MyBean.IntegerProperty}语法不可能代表有效属性,因为它违反了 Javabeans 和 EL 规范。
标签: jsf foreach jstl expression el