【问题标题】:Can't iterate over list in Jsp无法遍历 Jsp 中的列表
【发布时间】:2023-03-06 18:31:01
【问题描述】:

我正在使用休眠来获取与特定用户关联的主题。在 mainPage 中,我想查看用户的名字和姓氏(这有效)和允许的主题。但是,由于某种原因,我无法成功遍历 mainPage 中的主题列表。

在我的 Spring 控制器中,我有一个方法,如下所示:

@RequestMapping(value = "/signin", method = RequestMethod.POST)
    public String SignIn(@ModelAttribute("user") User user, ModelMap modelMap){

        String username = user.getUsername();
        String password = user.getPassword();

        User user1 = userService.getUser(username, password);
        if(user1 != null){

            List<Subject> subjectList = userService.getUserSubjects(user1.getId());

            modelMap.addAttribute("subjects", subjectList);
            modelMap.addAttribute("user", user1);
            return "mainPage";
        }

        modelMap.addAttribute("ShowNotAuthenticated", true);
        return "authentication";
    }

mainPage.jsp 看起来像这样:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <h2>Current user: ${user.firstName} ${user.lastName}</h2> //this works
        <br>
        <h3>Allowed subjects:</h3>
    <table>
        <tr>
            <td>
                Subject Name
            </td>
        </tr>
        <c:forEach items="${subjects}" var="x"> //doesn't work
            <tr>
                <td>
                    ${x.name}
                </td>
            </tr>
        </c:forEach>
    </table>
    </body>
</html>

这是调试期间的SignIn方法:

这些是mainPage.jsp中的图片:

Mykhailo Moskura的建议也不行:

【问题讨论】:

  • 您正在将Subject 的列表放入该变量中,因此,也许您正在尝试打印您没有的东西。如您所见,它们是 0=> 的东西,1=> 物理等...... NumberFormatException 表明您正在尝试处理与您期望的不同的东西,检查stackoverflow.com/questions/2148658/…
  • @Alfabravo,你是对的,${x[1]} 有效

标签: java spring-mvc


【解决方案1】:

从调试器屏幕截图中,我看到您的 subjectList 具有 Object[] 类型的元素。因此,您要么需要更改存储在该列表中的内容,要么尝试使用 ${x[1]} 而不是 ${x.name}

【讨论】:

  • 告诉需要userService.getUserSubjects()的代码
猜你喜欢
  • 2012-12-12
  • 2014-01-14
  • 2011-06-11
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 2018-06-02
  • 2022-01-19
相关资源
最近更新 更多