Перебор ArrayList в .jsp (совместим с MVC2) - PullRequest
1 голос
/ 27 мая 2011

Я пишу веб-приложение, которое использует сервлет для поддержки ArrayList объектов VideoData (они просто содержат основную информацию о фильмах, например, название, тип фильма и т. Д.).

Сервлет помещает этоПеречислите в области запроса и перенаправьте запрос и ответ на jsp (здесь показана только часть кода сервлета):

public class VideoServlet extends HttpServlet {

    private ArrayList<VideoData> library = new ArrayList<VideoData>();

    public void doGet(HttpServletRequest request,
                       HttpServletResponse response) {

        try {

            // put ArrayList in Request's scope
            request.setAttribute("the_table", library);

            request.getRequestDispatcher("/listvideos.jsp").forward(request,
                    response);

            ...

listvideos.jsp показан ниже.Я получаю сообщение об ошибке Tomcat о том, что URI для JSTL не может быть разрешен.Я использовал EL в других частях моего jsp-кода без необходимости иметь какую-либо специальную строку импорта, подобную этой, и я не уверен, что JSTL все еще является предпочтительным способом решения этого типа проблем, все еще пытаясь придерживаться MVC2 ихранение всего Java-кода в сервлете.Кто-нибудь может указать мне правильное направление здесь?В идеале я хотел бы получить чистое решение EL, если это возможно.

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 
'http://www.w3.org/TR/html4/loose.dtd'>

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

<html>

    <head>

        <title>Cattle Drive Assignment Servlets-4: Videos</title>

    </head>

    <body>

        <h1>Cattle Drive Assignment Servlets-4: Videos</h1>

        <form method='post' action='/videos/VideoServlet'>

            <a href="http://localhost:8080/videos/addvideo.jsp">Add a video</a>

            <br>
            <br>

            <table border="1">

                <tr>

                    <th>Title</th>

                    <th>Star</th>

                    <th>Type</th>

                    <th>VHS</th>

                    <th>DVD</th>

                    <th>Description</th>

                </tr>

                <c:forEach items="${the_table}" var="movie">

                <tr>

                    <td>${movie.getTitle()}</td>

                    <td>${movie.getStar()}</td>

                    <td>${movie.getType()}</td>

                    <td>${movie.inVHS()}</td>

                    <td>${movie.inDVD()}</td>

                    <td>${movie.getDesc()}</td>

                </tr>

                </c:forEach>

            </table>

        </form>

    </body>

</html>

1 Ответ

3 голосов
/ 27 мая 2011

Ваш код выглядит в основном правильно. Похоже, ошибка, которую вы видите, указывает на то, что теги JSTL не могут быть найдены в пути к классам. Пожалуйста, убедитесь, что jstl.jar и standard.jar находятся в папке WEB-INF/lib вашей войны.

...