【问题标题】:print complete rows in table which is passed from servlet打印从 servlet 传递的表中的完整行
【发布时间】:2014-06-16 10:16:06
【问题描述】:

我有一个 jsp 页面和一个 servlet,在 servlet 中,我想从特定表中获取一些行并将它们传递给 jsp。我能够在 servlet 中检索并尝试在 jsp 中传递它们,但请不要显示任何人都在这里帮助我......

public class TimeDetail extends HttpServlet {

    @SuppressWarnings("unchecked")
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, java.io.IOException {
        HttpSession session = request.getSession(true);
        String eid = (String) session.getAttribute("eid");
        int count = 0;
        Connection con = ConnectionManager.getConnection();
        try {
            Statement st = con.createStatement();
            Statement st1 = con.createStatement();
            String Query = "select date, intime, outtime, eid  from fulltime where eid='" + eid + "'";
            ArrayList Rows = new ArrayList();
            ResultSet rs = st.executeQuery(Query);
            List agentList = new ArrayList();

            while (rs.next()) {
                ArrayList row = new ArrayList();
                for (int i = 1; i <= 4; i++) {
                    row.add(rs.getString(i));
                }

                String n1 = rs.getString("date");
                String n2 = rs.getString("intime");
                String n3 = rs.getString("outtime");
                String n4 = rs.getString("eid");

                session.setAttribute("n1", n1);
                session.setAttribute("n2", n2);
                session.setAttribute("n3", n3);
                session.setAttribute("n4", n4);

                // response.sendRedirect("TimeDetail.jsp");
                Rows.add(row);

            }
            request.getSession().setAttribute("results", Rows);
            RequestDispatcher rd = getServletContext().getRequestDispatcher("/TimeDetail.jsp");
            rd.forward(request, response);

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

这里是jsp代码

<tr><td>
    <table width="600" height="300"align=center cellspacing=0 border="0" 
        <caption><h2>List of users</h2></caption>
        <tr>
            <th>date</th>
            <th>intime</th>
            <th>outtime</th>
            <th>eid</th>
        </tr>
        <c:forEach var="user" items="${Rows.rows}">
            <tr>
                <td><c:out value="${user.date}" /></td>
                <td><c:out value="${user.intime}" /></td>
                <td><c:out value="${user.outtime}" /></td>
                <td><c:out value="${user.eid}" /></td>
            </tr>
      </c:forEach>
    </table>
   </div>
        </table><BR>
        </fieldset>
    </td></tr></table>
   </td></tr>
    </table>
   </body>
   </html>

【问题讨论】:

  • 你有什么错误吗?
  • 不,先生,实际上我在为 servlet 控制台打印时可以看到的值,然后我添加到列表中(我不擅长收集概念,所以可能是一些问题)并继续发送jsp 所以jsp没有显示任何错误它只是没有打印行它只显示带有标题部分的空表..
  • 任何人都可以在这里帮助我......

标签: java jsp servlets


【解决方案1】:

你的 for each 循环应该是这样的,

<c:forEach var="user" items="${results}">
            <tr>
                <td><c:out value="${user}" /></td>
                <td><c:out value="${user}" /></td>
                <td><c:out value="${user}" /></td>
                <td><c:out value="${user}" /></td>
            </tr>
      </c:forEach>

而你的 servlet 为,

     try {
            Statement st = con.createStatement();
            Statement st1 = con.createStatement();
            String Query = "select date, intime, outtime, eid  from fulltime where eid='" + eid + "'";
            ArrayList row = new ArrayList();
            ResultSet rs = st.executeQuery(Query);


     while (rs.next()) { 
                     row.add(rs.getString("date"));
                     row.add(rs.getString("intime"));
                     row.add(rs.getString("outtime"));
                     row.add(rs.getString("eid"));
    }
}
request.getSession().setAttribute("results", row);
            RequestDispatcher rd = getServletContext().getRequestDispatcher("/TimeDetail.jsp");
            rd.forward(request, response);

希望对你有帮助!!

【讨论】:

  • 先生,我试过了,但它没有工作,它显示为空,请检查我的 servlet 编码一次...
  • 它会起作用的。是否有任何错误或仍然出现相同的空白页面?
  • 先生,我完全没有创建两个类和 m 使用两种方式交替...一个是 bean 概念,另一个是相同的这个 servlet 但没有答案相同的响应..
  • 它是一个临时变量,用于迭代for循环。
  • 是的,先生,这只是我认为 jstl 的问题,但现在它打印了 4 次,我不知道为什么意味着一行将出现 4 次...在 jsp 页面上...您在上面提供的代码仅此而已..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-21
  • 1970-01-01
  • 2016-05-27
  • 2014-04-10
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
相关资源
最近更新 更多