【问题标题】:How to Display data from database with servlet/jsp如何使用 servlet/jsp 显示数据库中的数据
【发布时间】:2011-05-31 22:06:38
【问题描述】:

我正在尝试显示我的 jsp 中的汽车列表。但我不明白为什么运行时什么都没有出现:

Servlet 代码:

public class SDisplayCar extends HttpServlet{
private static final long serialVersionUID = 1L;
private Gestion gestion = Gestion.getInstance();

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    int category = Integer.parseInt(request.getParameter("category"));
    int place = Integer.parseInt(request.getParameter("place"));
    String startingDate = request.getParameter("dstart"); 
    String endingDate = request.getParameter("dend");

    Date start = gestion.getDate(startingDate);
    Date end =  gestion.getDate(endingDate);

    List<Vehicle> list = gestion.getVehiclesAvailable(category,place,start,end);

    HttpSession session=request.getSession();
    session.setAttribute("list", list);

    request.getRequestDispatcher("listeOfVehicle.jsp").forward(request,response);
}
}

JSP 代码:

<table border="1">
            <thead>
                <tr>
                    <th>Category</th>
                    <th>Brand</th>
                    <th>Model</th>
                    <th>Places</th>
                </tr>
            </thead>
            <tbody>
                <c:forEach var="vehicle" items="${list}">
                <tr>
                    <td><c:out value="${vehicle.category}"  /></td>
                    <td><c:out value="${vehicle.brand}" /></td>
                    <td><c:out value="${vehicle.model}" /></td>
                    <td><c:out value="${vehicle.places}"  /></td>
                </tr>
                </c:forEach>
            </tbody>
        </table>

我是不是错过了什么。我不明白。当我运行 servlet 时,它应该在 jsp 页面中显示车辆列表。

我正在使用休眠(它工作正常并且可以完美地访问数据库)并使用 MVC 模型。

这是我的表格:

   <body>
<Form action="DisplayCar" method="post">
<TABLE BORDER=0>
<TR>
    <TD>Category</TD>
    <TD>
    <SELECT name="category">
        <OPTION VALUE="1">1</OPTION>
        <OPTION VALUE="2">2</OPTION>
        <OPTION VALUE="3">3</OPTION>
        <OPTION VALUE="4">4</OPTION>
        <OPTION selected VALUE="5">5</OPTION>
    </SELECT>
    </TD>
</TR>
<TR>
    <TD>Date</TD>
    <TD>
        <P>Starting date: <input type="text" name="dstart" />
        <P>End date <input type="text" name="dend" />
    </TD>
</TR>
<TR>
    <TD>Place</TD>
    <TD>
    <SELECT name="place">
        <OPTION VALUE="4">4</OPTION>
        <OPTION VALUE="5">5</OPTION>    
    </SELECT>
    </TD>
</TR>
<TR>
    <TD COLSPAN=2>
    <INPUT type="submit" value="Send">
    </TD>
</TR>
</TABLE>
</Form> 
</body>
</html>

【问题讨论】:

  • 显示提交给 servlet 的表单。
  • 确保 web.xml 文件配置正确
  • 我添加了提交表单。我尝试使用 JSTL 显示列表。
  • 它是否访问过服务器?放一个断点或system.out.println
  • 如果有,打印列表的大小,确保有数据

标签: java jsp servlets jstl httpsession


【解决方案1】:

在你的 JSP 中,你写错了列表

${liste} 它的${list}

【讨论】:

  • 啊,不,我刚刚意识到我在用英文翻译时犯了一个错误(因为我的程序使用了法语命名的变量)。所以我的意思是列出而不是列出。
  • 为什么要翻译,最好看原文。
  • 更好的是,始终在代码中仅使用英文。也在 cmets 中。
  • @RMT 我也有类似的问题here。如果可能的话,你能帮我吗?任何帮助将不胜感激。感谢您的帮助。
【解决方案2】:

首先确保您的容器附带了内置的 JSTL,或者当容器没有附带它时(例如 Tomcat),您已经安装了正确版本的 JSTL。详情请查看our JSTL wiki page。不要忘记仔细检查web.xml 版本!

然后,当您要使用 JSTL 核心标记库时,请确保它已按照 JSTL taglib documentation:在 JSP 顶部声明:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

这样所有&lt;c:xxx&gt;标签都会运行。

【讨论】:

    【解决方案3】:

    你确定 doPost 方法被调用了吗?请先检查一下。

    【讨论】:

    • doPost 方法被正确调用,因为它是在表单中写的 method="post" 对吗??
    【解决方案4】:

    servlet 正在将汽车列表设置为名称为“list”的会话属性。 jsp 使用名称“liste”访问的位置。

    【讨论】:

      猜你喜欢
      • 2016-05-02
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多