2016-09-15 43 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