Как отобразить данные из базы данных с помощью сервлета / JSP - PullRequest
0 голосов
/ 01 июня 2011

Я пытаюсь отобразить список автомобилей из моего JSP. Но я не понимаю, почему во время выполнения ничего не появляется:

Код сервлета:

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>

Я что-то упустил? Я не понимаю Когда я запускаю сервлет, он должен отображать список транспортных средств на странице jsp.

Я использую hibernate (который отлично работает и отлично обращается к базе данных) и использую модель 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>

Ответы [ 4 ]

1 голос
/ 01 июня 2011

Сначала убедитесь, что ваш контейнер поставляется со встроенным JSTL или когда контейнер не поставляется с ним (например, Tomcat), что вы установили правильную версию JSTL. Проверьте нашу вики-страницу JSTL для деталей. Не забудьте перепроверить web.xml версию!

Затем, когда вы хотите использовать базовую библиотеку тегов JSTL, убедитесь, что она объявлена ​​в верхней части JSP согласно документации Библиотека тегов JSTL :

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

Таким образом будут выполняться все теги <c:xxx>.

1 голос
/ 01 июня 2011

В вашем JSP вы написали список ошибочных ошибок

${liste} его ${list}

0 голосов
/ 01 июня 2011

Сервлет устанавливает список автомобилей для атрибута сеанса с именем «список». Где доступ к jsp с именем «liste».

0 голосов
/ 01 июня 2011

Вы уверены, что вызывается метод doPost?Пожалуйста, проверьте это сначала.

...