Struts forEach标记不通过ArrayList迭代

时间:2009-08-24 09:28:05

标签: java struts foreach iteration

我有一些代码!代码如下所示:

<c:forEach var="element" items="%{serviceList.getServices()}">
        <p>Hello!</p>
</c:forEach>

“serviceList”是一个bean,其上有一个名为getServices()的方法。 getServices()返回一个ArrayList,所以我自然地假设上面的代码将采用arraylist,并迭代它将列表的每个元素放入变量'element'。

不是这样!当我查看页面时,Hello打印一次(getServices()的大小为2,我可以通过在页面上打印出来直接显示。

标签本身有效:

<c:forEach begin="1" end="10">Hello, World!<br></c:forEach>

打印出您的期望。所以它必须与我传入的物品有关。有什么帮助吗?

哦,这是使用JSTL 1.1.2,Struts 2.1.6和最新版本的Java。

2 个答案:

答案 0 :(得分:4)

你有一个拼写错误,你应该这样使用${variable name}

<c:forEach var="element" items="${serviceList.services}">
  <p>Hello!</p>
</c:forEach>

然后行为就像你期望的那样。

答案 1 :(得分:0)

${serviceList.services}

您的表达式语言语法不正确。有关详细信息,请参阅JSP 2.1 spec的EL部分。