我能够获取列表对象但是如何在列表中显示值?
<%
com.ibm.commerce.utf.objects.RFQProdAccessBean ab= new com.ibm.commerce.utf.objects.RFQProdAccessBean();
Enumeration list = (java.util.Enumeration)ab.findByRFQId(java.lang.Long.parseLong("13001"));
System.out.println("*******"+list);
Vector aVector = new Vector(java.util.Arrays.asList(list));
Iterator nums = aVector.iterator();
while(nums.hasNext()) {
String aString = (String)nums.next();
System.out.println("************"+aString);
}
%>
<c:out value="${aString}" />
答案 0 :(得分:1)
您的代码中有几个问题:
java.util.Arrays.asList(list)
不会将枚举转换为列表。它将创建一个包含单个元素的List:枚举。您应该使用Collections.list()来执行此操作。aString
,但在循环内定义了aString c:forEach
标记,而不是while循环。所以,代码可以写成:
<% RFQProdAccessBean ab= new RFQProdAccessBean();
Enumeration<String> enumeration = (Enumeration<String>) ab.findByRFQId(13001L);
pageContext.setAttribute("list", Collections.list(enumeration));
%>
<c:forEach var="element" items="${list}">
<c:out value="${element}"/>
</c:forEach>
但是,我再说一遍,Java代码应该在JSP之外,并且应该将列表存储到请求属性中。 forEach循环将保持不变。