【问题标题】:JSP - printing a list wont workJSP - 打印列表不起作用
【发布时间】:2014-01-12 09:20:35
【问题描述】:

更新: 一切运行良好...... OP 只是愚蠢 - 感谢所有在实际上没有缺陷时寻找缺陷的好人 - 也感谢您的建议

在打印列表元素方面我需要一点帮助 - 我有一些代码,但它不会显示我在 java 部分中创建的列表中的元素 - 感谢您提前提供任何帮助

这是我的 html / .jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" type="text/css" href="stylesheets/user_management.css" />
    </head>
    <body>

        <table>
            <c:forEach items="${userList}" var="item">
            <tr>
                <td><c:out value="${item}" /></td>
            </tr>
             </c:forEach>
        </table>
    </div>
    </body>
</html>

这是我的 java 代码的一部分

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<String> list = new ArrayList<String>();

        list.add("User1");
        list.add("User2");

        request.setAttribute("userList", list);

        request.getRequestDispatcher("/user_management.jsp").include(request, response);

        return;
    }

【问题讨论】:

  • 它的作用是什么?
  • @SotiriosDelimanolis:我刚醒来(虽然还在床上);-)
  • 除非它有一些我看不到的奇怪语法错误,否则它看起来非常好。您确定样式表 (user_management.css) 没有隐藏您页面的任何部分吗?你试过评论吗?
  • 你在使用 Spring MVC 吗?如果是这样,我希望看到您将其添加到模型而不是属性中。
  • @JBNizet 它只打印通常的 html 输出和
    里面没有任何东西

标签: java html list jsp


【解决方案1】:

我猜你应该访问你的 USER_LIST 变量,比如 ${requestScope.USER_LIST}

使用小驼峰命名约定

Expression Language (Implicit objects)

更新 我刚刚创建了与您在问题中提到的相同的设置。我可以访问变量 USER_LIST 并且它还对其进行迭代。我还使用了一个 HttpServlet,它在请求中设置 USER_LIST 属性,然后在 JSP 文件中迭代这个列表。我可以想象你的设置不完整。检查 web.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">
    <servlet>
        <servlet-name>SampleServlet</servlet-name>
        <servlet-class>com.m3ns1.sample.SampleServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>SampleServlet</servlet-name>
        <url-pattern>/users</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

我为 URL /users 注册了 HttpServlet“SampleServlet”。然后,servlet 包含 user_management.jsp 文件。通过此设置,我可以访问http://localhost:8080/sample/users 下的页面,其中包括项目下的 user_management.jsp 文件。你能告诉我们你的 web.xml 文件中的配置吗?

【讨论】:

  • 页面范围内没有USER_LIST属性,所以不需要使用requestScope。我同意命名约定,但这并不能回答问题。
  • requestScope: 将请求范围的变量名称 (USER_LIST) 映射到它们的值 -> ${requestScope.USER_LIST} 应该映射您在 HttpServlet 中设置的 USER_LIST(请参阅“表达式语言”链接)跨度>
  • 点击您发布的链接并阅读:例如,在评估表达式 ${product} 时,容器将在页面、请求、会话和应用程序范围内查找产品,并将返回它的值。由于页面范围内没有USER_LIST,EL会在请求范围内找到它。
  • 好的,我同意这一点。您能否检查是否在您的示例中找到了 ${USER_LIST} ,例如。如果找到变量,它应该调用它的 toString() 方法,因此你应该至少看到 USER_LIST 的字符串表示
  • 您应该将此问题作为对该问题的评论发布,或者如果您希望 OP 收到此问题,请在评论中添加 @Necator
猜你喜欢
  • 1970-01-01
  • 2017-03-09
  • 2016-03-18
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多