我刚开始使用JSP和JSTL,我对如何使用JSTL标记以及如何使用JSTL创建变量的逻辑感到困惑。
这是我的JSP页面。
我正在尝试迭代Treemap并在我的JSP页面上显示键和值。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="com.company.ClassWhereMapIs" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.TreeMap" %>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Keys and values from TreeMap.</h1>
<c:forEach var="entry" items="${treeMap}">
Key: <c:out value="${entry.key}"/>
Value: <c:out value="${entry.value}"/>
</c:forEach>
</body>
</html>
如何创建变量$ {treeMap}?
如果你能展示完整的例子,那就最好。
请帮忙!
答案 0 :(得分:0)
JSP / JSTL是用于应用程序的视图的技术。该视图的工作是从数据(模型:Java bean)生成HTML页面,并由Java类传递给视图:控制器。
控制器通常实现为Servlet。
要将数据传递到视图,控制器会执行以下操作:
SomeData data = ...;
request.setAttribute("data", data);
request.getRequestDispatcher("/the/path/of/the/view.jsp").forward(request, response);
由于控制器已将数据存储在请求属性中(在我的示例中名为“data”),因此JSTL现在可以访问此对象:
<ul>
<c:forEach var="product" items="${data.products}">
<li><c:out value="${product.name}"/></li>
</c:forEach>
</ul>
因此,为了简要回答你的问题,JSP EL“变量”实际上是页面,请求(大多数时候),会话或应用程序属性,这些属性通常由Java控制器创建和存储, JSP被执行。
如果使用像Spring MVC这样的真实MVC框架,这个MVC模式实现起来更简单,并提供更多功能。