【问题标题】:How to create TreeMap variable for JSP, so I can iterate over it using JSTL?如何为 JSP 创建 TreeMap 变量,以便我可以使用 JSTL 对其进行迭代?
【发布时间】:2015-08-24 10:23:41
【问题描述】:

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

最好能展示完整的例子。

请帮忙!

【问题讨论】:

  • 好的,也许我的问题不清楚。我有一个简单的 java 类(ClassWhereMapIs),它包含一个带有值的 TreeMap。现在我想访问这个类并获取 TreeMap 变量并在我的 JSP 页面上显示每个键和值。

标签: jsp jstl


【解决方案1】:

JSP / JSTL 是用于视图应用程序的技术。视图的工作是从准备好的数据(model:Java beans)生成一个 HTML 页面,并通过 Java 类:controller 传递给视图。

控制器通常实现为 Servlet。

要将数据传递给视图,控制器执行以下操作:

SomeData data = ...;
request.setAttribute("data", data);
request.getRequestDispatcher("/the/path/of/the/view.jsp").forward(request, response);

由于控制器已将要显示的数据存储在请求属性中(在我的示例中名为“数据”),因此 JSTL 现在可以访问此对象:

<ul>
    <c:forEach var="product" items="${data.products}">
        <li><c:out value="${product.name}"/></li>
    </c:forEach>
</ul>

所以,简单地回答你的问题,JSP EL“变量”实际上是页面、请求(大部分时间)、会话或应用程序属性,这些属性通常由 Java 控制器创建和存储,在JSP 被执行。

如果您使用真正的 MVC 框架(如 Spring MVC),则此 MVC 模式更易于实现,并提供更多功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 2017-09-20
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多