Similar presentations:
Объектно-ориентированное программирование. Лекция 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 форма input17.
Spring MVC форма inputПри работе с формами, аннотация @ModelAttribute в параметре
метода контроллера дает доступ к конкретному атрибуту модели.
18.
Spring MVC форма inputМы также можем работать с полученным объектом:
19.
Spring MVC форма selectform:select – форма, предназначенная для реализации
выпадающего списка
20.
Spring MVC форма selectРезультат:
21.
Spring MVC форма selectЧтобы не создавать hardcoded значения, можно модифицировать
класс:
22.
Spring MVC форма selectИспользуем это во view
23.
Spring MVC форма radio buttonform:radiobutton – форма, предназначенная для реализации radio
button (переключатель)
Добавим в класс новое поле
24.
Spring MVC форма radio buttonView:
25.
Spring MVC форма radio buttonРезультат:
26.
Spring MVC форма checkboxform:checkbox – форма, предназначенная для реализации
checkbox
27.
Spring MVC форма checkboxview:
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 – значение поля должно соответствовать регулярному
выражению
Результат