Рубрики
Без рубрики

Весна 3 MVC и JSR303 @Допустимый пример

– Весна 3 MVC и JSR303 @Допустимый пример

Весной 3 вы можете включить ” mvc: управляемый аннотациями ” для поддержки проверки компонентов JSR 303 через @Valid аннотацию, если в пути к классу есть платформа проверки JSR 303.

В этом уроке мы покажем вам, как интегрировать валидатор Hibernate с Spring MVC через @Valid аннотацию, чтобы выполнить проверку компонентов в HTML-форме.

Используемые технологии:

  1. Пружина 3.0.5.ВЫПУСК
  2. Валидатор гибернации 4.2.0.Окончательный
  3. JDK 1.6
  4. Затмение 3.6
  5. Мавен 3

1. Зависимости проекта

Валидатор гибернации доступен в общедоступном репозитории JBoss.

	
		
			JBoss repository
			http://repository.jboss.org/nexus/content/groups/public/
		
	
	
	
		3.0.5.RELEASE
	

	

		
		
			org.springframework
			spring-core
			${spring.version}
		

		
			org.springframework
			spring-web
			${spring.version}
		

		
			org.springframework
			spring-webmvc
			${spring.version}
		

		
		
			org.hibernate
			hibernate-validator
			4.2.0.Final
		

	

2. Проверка компонентов JSR 303

Простой POJO, снабженный аннотацией Hibernate validator.

package com.mkyong.common.model;

import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range;

public class Customer {

	@NotEmpty //make sure name is not empty
	String name;

	@Range(min = 1, max = 150) //age need between 1 and 150
	int age;

	//getter and setter methods

}

3. Контроллер + @Действительный

Чтобы проверка работала, просто аннотируйте “объект аннотированной модели JSR” через @Valid . Вот и все, остальное – это просто обычная обработка формы Spring MVC.

package com.mkyong.common.controller;

import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.mkyong.common.model.Customer;

@Controller
@RequestMapping("/customer")
public class SignUpController {

	@RequestMapping(value = "/signup", method = RequestMethod.POST)
	public String addCustomer(@Valid Customer customer, BindingResult result) {

		if (result.hasErrors()) {
			return "SignUpForm";
		} else {
			return "Done";
		}

	}

	@RequestMapping(method = RequestMethod.GET)
	public String displayCustomerForm(ModelMap model) {

		model.addAttribute("customer", new Customer());
		return "SignUpForm";

	}

}

4. сообщение об ошибке

По умолчанию, если проверка не удалась.

  1. @NotEmpty отобразит “может быть не пустым”
  2. @Диапазон отобразит “должно быть от 1 до 150”

Вы можете легко переопределить его, создать свойства с “ключом” и сообщением. Чтобы узнать, какая @аннотация привязана к какому ключу, просто отладьте ее и просмотрите значение внутри ” Результат привязки “. Обычно ключом является ” @Имя аннотации.объект.имя поля “.

Файл: сообщения.свойства

NotEmpty.customer.name = Name is required!
Range.customer.age = Age value must be between 1 and 150

5. mvc: управляемый аннотациями

Включите ” mvc: управляемый аннотациями “, чтобы сделать Spring MVC поддерживает валидатор JSR 303 через @Valid , а также свяжите файл свойств.



	

         
	

	
		
			/WEB-INF/pages/
		
		
			.jsp
		
	
    
        
	
		
	


6. Страницы JSP

Последняя, обычная страница JSP с библиотекой тегов Spring form.

Файл: Форма регистрации.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>






	

Customer SignUp Form - JSR303 @Valid example

Customer Name :
Customer Age :

Файл: Готово.jsp



	

Done

6. Демонстрация

URL-АДРЕС: http://localhost:8080/SpringMVC/customer – Страница формы клиента с 2 текстовыми полями для имени и возраста.

URL-АДРЕС: http://localhost:8080/SpringMVC/customer/signup – Если вы не заполнили форму и не нажали кнопку “отправить”, будут отображаться ваши индивидуальные сообщения об ошибках проверки.

Скачать Исходный Код

Рекомендации

  1. Документация по проверке Spring JSR 303
  2. Проверка компонентов JSR 303
  3. Валидатор гибернации

Оригинал: “https://mkyong.com/spring-mvc/spring-3-mvc-and-jsr303-valid-example/”