Друзья, в предыдущей статье мы с Вами детально и подробно изучали такую штуку, как JDBC Template, а потом тестировали ее с помощью написанного нами простенького REST-контроллера. Однако, я обмолвился в прошлой статье о том, что если у вас нет Postman’а, либо Вы не знаете, как с ним работаете, такая же ситуация у Вас с cUrl’ом, а IDE не не имеет встроенного http-клиента, то для Вас будет написано еще 3 статьи, которые помогут разными способами решить эту проблему и протестить-таки функционал JDBCTemplate. Итак, вот она, первая статья. Сегодня мы создадим простенькую jsp-страницу для отображения выборки из БД.
Как обычно, немного теории о том, что такое mvc и jsp.
MVC («Модель — Представление — Контроллер») — схема или шаблон проектирования, предложеный еще в далеком 1972-м году, суть которого заключается в независимом существовании различных компонентов программы. Модель отвечает за данные, контролер за управление этими данными, представление — за их отображение.
JSP — Java Server Pages. Короче, если на совсем простом языке — это как бы обычные html-странички, но не совсем. С помощью специальных тегов вы можете интегрировать в эти странички динамически возвращаемые бэком данные.
Понятнее всего это станет на практике. Итак, берем наш предыдущий проект и добавляем в pom.xml две зависимости:
В дерево проекта переходим в папку crm/main и добавляем туда структуру папок: webapp/WEB-INF/jsp:

В каталог jsp соответственно добавляем файлы index.jsp и personList.jsp.
Вот их содержание:
index.jsp:
personList.jsp:
В принципе, обладая небольшими хотя бы знаниями HTML разобраться в коде страничек можно. Самое интересное для нас вот что:
<c:forEach items="${users}" var ="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.email}</td>
</tr>
</c:forEach>
<c:forEach — начало цикла. То есть, если у нас данные имеют какую-то структуру сходную с коллекцией, например, массив или список, мы можем итерировать данную коллекцию с помощью подобных тегов, заодно повторяя в теле цикла какие-то Html-элементы. В данном случае мы итерируемся по параметру ${users}. В JSP именно так обозначается параметр, который потом будет передан с контроллера. var =»user» — это уже переменная «как-бы-на-фронте«, которую мы будем использовать ниже.
${user.id} — собственно вот мы и используем ее. Так как мы будем «с бэка» передавать List, заполненный объектами типа User, то в jsp мы просто ссылаемся на поля (id, name, email) нашего класса User.
Теперь реализуем наш контроллер. Создаем новый класс mvcController. Вот его листинг:
Для нас тут ключевой момент — это строчки типа model.addAttribute(«users», service.getAllUsers()). Здесь как раз мы указываем переменную, «которой мы будем на фронте ловить наши данные«. В данном случае это users и вызываем уже знакомый нам по предыдущей статье метод обращения к БД.
Ну и так же у нас немного поменяется application.properties:
Вот и все! Переходим на http://localhost:8080 в браузере и наслаждаемся!