Валидиране на въведените данни, Пролет на български!

Този урок обхваща процеса на създаване на уеб приложение с поддръжка за валидиране.

Какво ще създадете

Ще създадете просто Spring MVC приложение, което приема въвеждане от потребителя и го валидира с помощта на стандартни анотации за валидиране. Ще видите също как да показвате съобщения за грешка, така че потребителят да въведе отново правилните данни.

От какво имаш нужда

Как да вземете този урок

Както повечето пролетни уроци, можете да започнете от нулата и да следвате всяка стъпка или да пропуснете основните стъпки, които вече знаете. Така или иначе ще получите работещ код.

За дазапочнете от нулата, отидете на Настройка на проекта.

За дапропуснете основните стъпки, направете следното:

  • Изтеглете и разархивирайте архива с кода на този урок или клонирайте от хранилището с помощта на Git: git clone https://github.com/spring-guides/gs-validating-form-input.git
  • Отидете в директорията gs-validating-form-input/initial
  • Продължавайки напред, създайте обект Person

Когато сте готови, можете да сравните резултата с извадката в gs-validating-form-input/complete.

Настройка на проекта

Първо трябва да настроите основен скрипт за изграждане. Можете да използвате всяка система за изграждане, която желаете, за изграждане на Spring проекти, но в този урок ще разгледаме кода за работа с Gradle и Maven. Ако не сте запознати с някой от тях, вижте свързаните уроци Изграждане на Java проект с помощта на Gradle или Изграждане на Java проект с помощта на Maven.

Създайте структура на директория

В директорията на проекта по ваш избор създайте следната структура на директория; например с командата mkdir -psrc/main/java/hello на *nix системи:

Създаване на файл за изграждане на Gradle

По-долу е първоначалният файл за изграждане на Gradle. Файлът pom.xml се намира тук. Ако използвате Spring Tool Suite (STS), можете да импортирате урока директно от него.

Плъгинът Spring Boot gradle предоставя много удобни функции:

  • Той събира всички буркани в classpath и събира един изпълним файл "über-jar", което улеснява изпълнението и доставянето на вашата услуга
  • Той търси публичен статичен void main() метод като знак за изпълним клас
  • Той осигурява вградено разрешаване на зависимости с конкретни номера на версиите за съответните зависимости на Spring Boot. Можете да замените каквито и да са версии, но по подразбиране ще се зареди с избрания набор от версии

Създаване на обект Person

Приложението включва проверка на потребителско име и възраст, т.е. Трябва да създадете клас, който представлява човек.

Класът Person има два атрибута: име и възраст. Те са маркирани с няколко стандартни анотации за валидиране.

  • @Size(min=2, max=30) - дължина на името от 2 до 30 знака
  • @NotNull - обезсилва нулевата стойност, която Spring MVC генерира, ако записът е празен
  • @Min(18) - стойността трябва да е поне 18

Създаване на уеб контролер

Сега, след като описахте обекта, е време да създадете прост уеб контролер.

Този контролер има методи GET и POST, като и двата се отнасят до /.

Методът showForm връща шаблона на формуляр. Той включва Person в своя подпис, което позволява съвпадение на атрибути с Person.

Методът checkPersonInfo приема два аргумента:

  • обектът person е маркиран като @Valid за получаванепопълнени атрибути от формата
  • bindingResult обект, който можете да проверите за грешки и да ги върнете

Можете да върнете всички атрибути от формуляр, свързан с обект Person. Във вашия код проверявате за грешки и ако има такива, изпращате обратно шаблона на формуляр. В тази ситуация се показват всички грешки в атрибутите.

Ако всички атрибути са правилни, тогава браузърът пренасочва към шаблона за резултати.

Създаване на HTML формуляр

Сега ще създадете "главната" страница.

Страницата съдържа проста форма, като всяко поле е разположено на отделен ред от таблицата. Формулярът е предназначен за изпращане до / . Той представлява обекта човек, който сте видели в метода GET в уеб контролера. Формата е добре познататаформа с гръб на боб. Той има две полета на компонента Person, th:field="*" и th:field="*". Полетата след тях се използват за показване на грешки при проверката.

Накрая щракнете върху бутона „Изпращане“. Ако името и възрастта, въведени от потребителя, противоречат на ограниченията @Valid, тогава същата страница ще бъде върната на потребителя, но с показаните грешки. Ако въведеното име и възраст са правилни, потребителят ще бъде пренасочен към следната уеб страница:

Създаване на клас Application

В това приложение използвате езика за шаблони Thymeleaf. Това приложение се нуждае от нещо повече от HTML.

За да активирате Spring MVC, обикновено добавяте @EnableWebMvc към класа Application. Но Spring Boot @EnableAutoConfiguration вече добавя тази анотация, когато намериspring-webmvc във вашия classpath. Това приложение също така съдържа @ComponentScan, което намира @Controller анотирани класове и техните методи.

Конфигурацията на Thymeleaf също е изложена чрез @EnableAutoConfiguration: шаблони по подразбиранесе намират в шаблони/ и се дефинират като изгледи без оглед на суфикса .html в името на файла. Настройките на Thymeleaf могат да се променят и отменят по различни начини в зависимост от вашето приложение, но ние няма да разгледаме това в този урок.

Изграждане на изпълним JAR

Можете да създадете един изпълним JAR файл, който съдържа всички необходими зависимости, класове и ресурси. Това улеснява изтеглянето, версията и внедряването на услугата като приложение през целия период на разработка, в различни среди и т.н.

След това можете да стартирате JAR файла:

Ако използвате Maven, можете да стартирате приложението с помощта на mvn spring-boot:run или можете да изградите приложението с mvn чист пакет и да стартирате JAR така:

Старт на услугата

Ако използвате Gradle, можете да стартирате услугата си от командния ред:

Като алтернатива можете да стартирате услугата си директно от Gradle така:

Приложението трябва да започне да работи след няколко секунди.

Ако отидете на http://localhost:8080/ трябва да видите следното:

данни

Какво се случва, ако въведетеA за име и15 за възраст и щракнете върхуИзпращане ?

Ще видите това, защото въведените стойности нарушават ограниченията в класа Person. Ако щракнете върху Изпращане с празна стойност за полето за въвеждане на възраст, ще получите различна грешка.

български

Ако въведете правилното име и възраст, ще се покаже страницата с резултати!

валидиране

Честито! Току-що разработихте просто уеб приложение с вградено валидиране в обекта. По този начин можете да предоставите на данните подходящи критерии за валидно въвеждане от потребителя.

">