我在servlet中有一个arraylist,我在jsp中使用它。
ArrayList<String> list =new ArrayList<String>();
list = (ArrayList<String>)request.getAttribute("iInfoType");
我使用jstl来解析数组列表
<c:forEach items="<%=list %>" var="element">
<c:out value="${element[10].id}"/>
</c:forEach>
但是获取错误PropertyNotFoundException。 我该怎么办
答案 0 :(得分:1)
id
没有String
属性,因此您需要更改jstl,如下所示:
<c:forEach items="list" var="element">
<c:out value="${element}"/>
</c:forEach>
此外,当您使用c:forEach
时,您正在迭代列表,因此使用${element}
会为您提供list
中的元素。
还有一点是,如果servlet / controller已经在请求范围中设置了list
,则不需要使用如上所示的scriptlet(即,您可以直接访问{ {1}}如list
)。
如果您想访问items="list"
的{{1}},可以使用index
,如下所示:
list
在JSP页面中使用scriptlet不是最佳实践,因此我建议不要使用它们,请查看here以获取有关JSP最佳实践的更多详细信息。我在链接中添加了以下关键点:
在HTML文档中嵌入Java代码(或scriptlet)可能不会 适合所有HTML内容开发人员,也许是因为他们这样做 不懂Java语言,也不在乎学习它的语法。