所以我有一个简单的JSP页面来显示这样的信息:
<%@ page import="db.DataManager"%>
<%@ page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<%
DataManager dm = (DataManager) application.getAttribute("datamanager");
ArrayList<DataManager.Author> authors = dm.getAuthors();
%>
<body>
<table>
<tr>
<th></th>
<th>Name</th>
<th>Born</th>
<th>Died</th>
</tr>
<c:forEach var="author" items="${authors}">
<p>hello</p>/* not showing */
<tr>
<td>${authors.id}</td>
<td><a href="author.jsp">${author.name}</a></td>
<td>${author.born}</td>
<td>${author.died}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
但无论如何,无论我放在<c:forEach>
标签内,它都不会显示在实际页面上(包括测试
标签)。我在WEB-INF / lib目录中有jstl 1.2的jar文件,所以我不知道发生了什么。
答案 0 :(得分:1)
第一个 先检查这个答案!
How to avoid Java code in JSP files?
您获取数据但不设置属性,因此<for:each>
无法迭代。
<%
DataManager dm = (DataManager) application.getAttribute("datamanager"); // get datamanager
ArrayList<DataManager.Author> authors = dm.getAuthors(); // get authors
// missing put authors in session!!!
%>
添加
request.setAttribute("authors", authors);
并且会按预期工作。
答案 1 :(得分:1)
在您的java代码中添加以下代码。
this