gpt4 book ai didi

java - c :forEach doesn't print map contents in JSP

转载 作者:行者123 更新时间:2023-12-01 16:44:23 24 4
gpt4 key购买 nike

免责声明:我今天花了很多时间在 stachoverflow 及其他领域研究这个简单的问题,所以请耐心等待。

我在 JSP 上有以下代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.contrast.db.Manager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.util.Map"%>


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>



<%
Integer age = Integer.valueOf(request.getParameter("age"));

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>


</head>
<body>


<%

Manager db = new Manager();
Connection conn = db.getConnection();


if (null == conn) {
out.println("Connection to MySQL failed");
} else {
out.println("Connection to MySQL succeeded");
}

Map<String, Integer> namesAndAge = db.findByAge(age);

%>

<h1>List of users older then <% out.println(age); %></h1>

<% out.println(namesAndAge); %>

<c:forEach items="${namesAndAge}" var="entry">
Key = ${entry.key}, value = ${entry.value}<br>
</c:forEach>


</body>
</html>

出于意图和目的,此代码应该打印出 db.findByAge(age) 返回的 HashMap 的内容,但事实并非如此

可以理解,人们可能会认为 HashMap 可能为空,但事实并非如此(请参见下面的屏幕截图)

Screenshot of the webpage

如您所见,HashMap 不为空,但无法正常工作

我缺少什么想法吗?

最佳答案

在 scriplet 上声明对象,而在 EL 表达式中引用的是上下文(pageContext、请求、 session 或应用程序)中的属性。

更改此行:

Map<String, Integer> namesAndAge = db.findByAge(age);

为此:

request.setAttribute("namesAndAge", db.findByAge(age));

关于java - c :forEach doesn't print map contents in JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61806775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com