如何为JSP创建TreeMap变量,所以我可以使用JSTL迭代它?

时间:2015-08-24 10:23:41

标签: jsp jstl

我刚开始使用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}?

如果你能展示完整的例子,那就最好。

请帮忙!

1 个答案:

答案 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模式实现起来更简单,并提供更多功能。