просмотреть таблицу базы данных в виде тега таблицы на странице jsp - PullRequest
1 голос
/ 14 сентября 2010

Я хочу применить подход MVC2 J2EE в моей работе со страницами JSP.Я хочу отделить код в сервлете и дизайн в JSP.Проблема, с которой я сталкиваюсь, заключается в том, что я хочу отобразить всех пользователей и их данные из таблицы БД в таблицу HTML на странице JSP. Теперь, как мне вызвать сервлет со страницы JSP, поскольку на странице отображения нет формы, и я не знаю,могу ли я использовать диспетчер, так как администратор нажимает на <a href>display users, и на страницах JSP должны отображаться все пользователи.Как я могу это сделать?

1 Ответ

5 голосов
/ 14 сентября 2010

Просто используйте метод сервлета doGet() и вместо этого вызовите URL сервлета.

Е.Г.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<User> users = userDAO.list();
    request.setAttribute("users", users);
    request.getRequestDispatcher("/WEB-INF/users.jsp").forward(request, response);
}

Отобразить этот сервлет в web.xml следующим образом:

<servlet>
    <servlet-name>users</servlet-name>
    <servlet-class>com.example.UsersServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>users</servlet-name>
    <url-pattern>/users</url-pattern>
</servlet-mapping>

Теперь сервлет доступен по http://example.com/context/users.

В файле /WEB-INF/users.jsp используйте JSTL c:forEach для отображения пользователей в таблице.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<table>
    <c:forEach items="${users}" var="user">
        <tr>
            <td>${user.name}</td>
            <td>${user.email}</td>
            <td>${user.age}</td>
        </tr>
    </c:forEach>
</table>

Файл JSP должен быть помещен в папку /WEB-INF, чтобы он не был доступен без предварительного вызова сервлета.

Смотри также:


Обновление : для установки JSTL выполните следующие действия:

  1. Скачать jstl-1.2.jar .
  2. Перетащите его в папку /WEB-INF/lib. НЕ извлекайте это! НЕ меняйте web.xml! Некоторые плохие онлайн-учебники предложат это. Они все не правы.
  3. Объявите интересную метку в верхней части страницы JSP в соответствии с документацией TLD Например, JSTL core :

     <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...