2.03M
Категория: ПрограммированиеПрограммирование

Объектно-ориентированное программирование. Лекция 9

1.

ОБЪЕКТНООРИЕНТИРОВАННОЕ
ПРОГРАММИРОВАНИЕ
Лекция 9

2.

План
• @RequestMapping для Controller класса
• Spring MVC форма input
• Spring MVC форма select
• Spring MVC форма radio button
• Spring MVC форма checkbox
• Валидация форм Spring MVC

3.

@RequestMapping для Controller класса
Аннотацию @RequestMapping, которую мы ранее применяли для
метода:
Можно использовать и для контроллера, следующим образом:

4.

@RequestMapping для Controller класса
Результат

5.

@RequestMapping для Controller класса
@RequestMapping, который мы пишем над классом называется
Controller Mapping
@RequestMapping, который мы пишем над методом называется
Method Mapping

6.

Spring MVC форма input
Создадим класс Employee, он понадобится для работы с формами

7.

Spring MVC форма input
Теперь модифицируем метод askEmployeeDetails

8.

Spring MVC форма input
Прежде чем переходить к модификации ask-emp-details-view
рассмотрим формы Spring MVC.
form:form – основная форма, содержащая в себе другие формы.
Это форма-контейнер.
form:input – форма, предназначенная для текста (однострочная).

9.

Spring MVC форма input
Обратите внимание, что при отображении данной страницы
сработают геттеры для каждого поля, поскольку объект был создан
конструктором без аргументов, в них будет null (в Salary 0)

10.

Spring MVC форма input
После нажатия на submit формы – сработают сеттеры и данные
будут записаны в объект.

11.

Spring MVC форма input
Модифицируем второй метод, showEmployeeDetails

12.

Spring MVC форма input
Теперь изменим view

13.

Spring MVC форма input
Результат:

14.

Spring MVC форма input
Если возникают проблемы с кодировкой при отображении
результатов, можно применить:

15.

Spring MVC форма input
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=UTF-8" %>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

16.

Spring MVC форма input

17.

Spring MVC форма input
При работе с формами, аннотация @ModelAttribute в параметре
метода контроллера дает доступ к конкретному атрибуту модели.

18.

Spring MVC форма input
Мы также можем работать с полученным объектом:

19.

Spring MVC форма select
form:select – форма, предназначенная для реализации
выпадающего списка

20.

Spring MVC форма select
Результат:

21.

Spring MVC форма select
Чтобы не создавать hardcoded значения, можно модифицировать
класс:

22.

Spring MVC форма select
Используем это во view

23.

Spring MVC форма radio button
form:radiobutton – форма, предназначенная для реализации radio
button (переключатель)
Добавим в класс новое поле

24.

Spring MVC форма radio button
View:

25.

Spring MVC форма radio button
Результат:

26.

Spring MVC форма checkbox
form:checkbox – форма, предназначенная для реализации
checkbox

27.

Spring MVC форма checkbox
view:

28.

Spring MVC форма checkbox
Результат:

29.

Валидация форм Spring MVC
Повторение:
JPA (Java Persistence Api) – стандартная спецификация, которая
описывает систему для управления сохраниением Java объектов в
таблицы БД.
JPA описывает правила, а Hibernate реализует.

30.

Валидация форм Spring MVC
По такому же принципу:
Java Standard Bean Validation Api – стандартная спецификация,
которая описывает правила валидации.
Hibernate Validator – реализация правил, описанных в данной
спецификации.

31.

Валидация форм Spring MVC
Подключаем зависимость:

32.

Валидация форм Spring MVC
Подключаем зависимость:

33.

Валидация форм Spring MVC
Подключаем зависимость:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.0.Final</version>
</dependency>

34.

Валидация форм Spring MVC
@Size – размер поля должен быть между указанными границами

35.

Валидация форм Spring MVC
Результат:

36.

Валидация форм Spring MVC
Можно добавить стиль:

37.

Валидация форм Spring MVC
Аннотация @NotNull

38.

Валидация форм Spring MVC
Запускаем, но ошибка не выводится и можно продолжать без
фамилии. Почему так происходит?

39.

Валидация форм Spring MVC
Это связано с тем, что surname не null, а пустая строка и
необходима другая аннотация

40.

Валидация форм Spring MVC
Но данную аннотацию можно обойти поставив несколько
пробелов
Если необходимо предусмотреть эту ситуацию, можно
использовать аннотацию

41.

Валидация форм Spring MVC
Но данную аннотацию можно обойти поставив несколько
пробелов
Если необходимо предусмотреть эту ситуацию, можно
использовать аннотацию

42.

Валидация форм Spring MVC
@Min – числовое значение должно быть меньше или равно
указанному параметру
@Max – числовое значение должно быть больше или равно
указанному параметру

43.

Валидация форм Spring MVC
Результат:

44.

Валидация форм Spring MVC
Добавим поле телефонный номер

45.

Валидация форм Spring MVC
@Pattern – значение поля должно соответствовать регулярному
выражению
Результат
English     Русский Правила