2016-09-15 35 views
0

我是java和JSP的新手。我发现了很多循环遍历jsp页面中返回的java类列表的例子,但没有一个适用于我的情况。这些示例并不总是显示@page和@taglib值,所以我将它们包含在内,因为我不知道是否有导入所需的特定顺序。从JSP页面中的Java.class列表中检索值

我有以下的jsp页面。

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@page import="java.io.*,java.util.*,java.sql.*"%> 
<%@page import="javax.servlet.http.*,javax.servlet.*" %> 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> 

<c:set var="cp" value="${pageContext.request.servletContext.contextPath}" scope="request" /> 

<html> 
     <body> 
      <% java.util.List x = new path.to.java.class.method(); %> 
      <%=x %> 

      <c:forEach items="${x}" var="element"> 
       <c:out value="${element.id}"/> 
      </c:forEach> 
     </body> 
</html> 

的<%= X%>显示逗号分隔值这样,[email protected],从数据库返回的值的正确数量。 forEach循环将不显示任何内容。

我错过了什么?

回答

1

答案是将x设置为jstl变量,并将该变量与创建列表的bean的方法一起使用。

<% java.util.List x = new path.to.java.class.method(); %> 
<c:set var="n" value="<%=x%>"/> 

<c:forEach items="${n}" var="element"> 
     <c:out value="${element.getId()}"/> 
</c:forEach> 
0

如果将c:out声明更改为<c:out value="${element}"/>,会发生什么情况?

+0

没有什么变化。 – dutchlab

+0

谢谢迈克,我能找到解决方案。 – dutchlab