如何将数组列表从servelet传递到jsp表?

时间:2016-05-30 11:00:22

标签: java html jsp servlets

大家好,我可以帮助我......

我想列出数据库中的所有数据并显示到jsp表

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub


    HttpSession session = request.getSession(true);

    try {
        Connection con=DataConnection.getconnection();
        PreparedStatement pst;
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        pst = con.prepareStatement("select * from [user]");
        ResultSet rs = pst.executeQuery();
        List<User> ee = new ArrayList<User>();

        while (rs.next()) {
            User e = new User();
            e.setName(rs.getString(1));
            e.setUserName(rs.getString(2));
            e.setPass(rs.getString(3));

            ee.add(e);
        }

        request.getSession().setAttribute("ee", ee);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/user.jsp");
        rd.forward(request, response);

    } catch (Throwable theException) {
        System.out.println(theException);
    }
}

这是我的代码,它包含数组列表并传递给它请求.getSession()。setAttribute(&#34; ee&#34;,ee);

现在如何在jsp中访问此值,它应该显示在表的from中 可以给我这个

的示例代码

2 个答案:

答案 0 :(得分:0)

使用 JSTL

我建议在请求而不是会话中设置数据。

替换行

 request.getSession().setAttribute("ee", ee);

 request.setAttribute("ee", ee);

而不是使用JSP中的以下代码

<c:forEach items="${ee}" var="element"> 
  <tr>
    <td>${element.col1}</td>
    <td>${element.col2}</td>
  </tr>
</c:forEach>

答案 1 :(得分:0)

您可以使用 $ {ee} 访问该数组。

有几种方法可以使用JSTL进行迭代。

假设您的User.java包含例如两个属性:name和surname,您可以使用以下代码访问JSP中的此信息:

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

    <c:forEach items="${sessionScope.ee}" var="item">
        ${item.name} - ${item.surname} 
    </c:forEach>

您应该考虑到您将属性置于会话中。 (这就是你必须使用 $ {sessionScope} 的原因)确保你是否想要使用会话。