【问题标题】:Displaying information from an object sent from a servlet to a jsp显示从 servlet 发送到 jsp 的对象的信息
【发布时间】:2014-05-05 13:17:46
【问题描述】:

我可以成功地将对象从 servlet 获取到 jsp 页面,但可以很清楚如何让该对象中的各个元素显示出来,我试图让 JSTL 标记库按如下所示工作,但无济于事。我将非常感谢您对此的任何帮助,我知道它只是一些小东西,因为对象在 jsp 上。

另外,这是最好的方法吗?有什么好的选择?

Servlet 提供 Welcome.jsp

protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
    HttpSession session = request.getSession(true);
    if (session.getAttribute("currentSessionUser") != null) {
        user = (User) session.getAttribute("currentSessionUser");
        userData = (User) ProfileDAO.displayUserProfile(user);

        request.setAttribute("userData", userData);
        request.getRequestDispatcher("Welcome.jsp").forward(request, response);
    } else {
        response.sendRedirect("LoginFailure.html");
    }
}

Welcome.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    :
    :
    :
<title>Welcome</title>
</head>
<body>
Welcome to BLAHBLAH.COM

<%
    Object userData = request.getAttribute("userData");

%>
<table>
    <c:choose items="${userData}" var="userData">
        <tr>
            <td>${userData.name}</td>
            <td>${userData.information}</td>
            <td>${userData.address1}</td>
       </tr>
    </c:choose>
</table>

<p>userData></p>

【问题讨论】:

    标签: java jsp object servlets jstl


    【解决方案1】:

    不推荐在jsp中使用Scriptlets,需要使用

    1.El表达式

    2.标签库

    您的代码的问题是您在 jsp 中使用了一个根本不需要的 scriptlet

      Object userData = request.getAttribute("userData");
    

    因为userData 对象已经在请求范围内可用此代码

    request.setAttribute("userData", userData);
    

    3.你可以像这样使用El表达式直接打印userData对象的值

                <td>${userData.name}</td>
                <td>${userData.information}</td>
                <td>${userData.address1}</td>
    

    4.您也可以使用 jstl 打印值,这是始终推荐的方法

      <c:out value="${userData.name}"/>
      <c:out value="${userData.information}"/>
      <c:out value="${userData.address1}"/>
    

    【讨论】:

      【解决方案2】:

      我不确定您是否需要 JSTL 作为要求,但这里有一个应该在 JSP 中工作的代码示例

      <%
           User userData = (User)request.getAttribute("userData");
      %>
      <table>
          <tr>
             <td><%= userData.name %></td>
             <td><%= userData.information %></td>
             <td><%= userData.address1 %></td>
          </tr>
      </table>
      

      【讨论】:

        猜你喜欢
        • 2012-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-19
        • 1970-01-01
        • 2015-06-07
        • 1970-01-01
        相关资源
        最近更新 更多