SpringBoot + JDBC Template + JSP Example

Друзья, в предыдущей статье мы с Вами детально и подробно изучали такую штуку, как 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 в браузере и наслаждаемся!

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *