JSTL <c:foreach>不支持List <integer>?</integer> </c:foreach>

时间:2011-01-04 18:33:25

标签: java jsp jstl

                            ${test}
                             <c:forEach items=" ${test}" var="sharedType">
                                  ${sharedType}<br/>
                                 <c:if test="${sharedType == 2}" >
                                     <span class="tweet-button"></span>
                                 </c:if>
                                 <c:if test="${sharedType == 1}" >
                                     TEST
                                     <a href="#" class="fbshare-button">Share</a>
                                 </c:if>
                            </c:forEach>

整数列表是1,2,3。 在我的页面上,它为$ {test}显示[1,2,3],在3次迭代中显示$ {sharedType}的“1”“2”“3”。看起来JSTL认为它是一个用逗号分隔的字符串而不是列表。 在java中生成列表的代码是:

List<Integer> test= new ArrayList<Integer>();
            test.add(1);
            test.add(2);
            test.add(3); 

我一直在努力解决这个问题,任何人都可以帮助我吗?谢谢。

1 个答案:

答案 0 :(得分:3)

只需在我的应用中查看它,然后将其作为答案:尝试从items=" ${test}"中删除空格。否则,您正在执行此java表达式" " + testList的等效项。显然,结果不是列表。

3次迭代中

和“[1”“2”“3”代表$ {sharedType}
很可能只有一次迭代,你看到test.toString()调用的结果。