我正在尝试实现一个 JSP 应用程序,我需要帮助。有两个问题:
1) JSTL 标签不转换成 HTML。
2)如果我在 JSP 页面中使用纯 java 而不是 JSTL,它仍然不起作用。
我将 netbeans 7.3 与 tomcat 7 以及 Java EE 6 一起使用。我在项目中添加了 netbeans 7.3 附带的 JSTL 库(即 JSTL 1.1)。
我的 web.xml 以:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
...
</web-app>
这是一个示例代码:
public class Item {
private int id;
private String name;
// setters and getters follow
}
public class Controller {
public List<Item> getAllItems() {
// returns a list of items (size of list = 2)
}
}
index.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
Controller controller = new Controller();
List<Item> items = controller.getAllItems();
%>
<table>
<c:forEach items="${items}" var="item">
<tr>
<td>${item.id}</td>
<td>${item.name}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
1)jstl代码没有转换成html。页面的源代码如下所示:
...
<table>
<c:forEach items="" var="item">
<tr>
<td></td>
<td></td>
</tr>
</c:forEach>
</table>
...
我也尝试使用 ${item.getId()} 和 ${item.getName()} 但结果相同
2)如果我用 java 替换 c:forEach 如下:
<% for (Item item : items) {%>
<tr>
<td><%item.getId();%></td>
<td><%item.getName();%></td>
</tr>
<% } %>
我得到以下来源(回想一下 List 的大小是 2):
...
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
我究竟做错了什么?我是否正确设置了jstl?请注意,Controller 是一个普通的 java 类,而不是一个 bean。我需要把它变成豆子吗?如果是,如何?提前致谢!