Этот пост представляет простой пример проверки формы HTML. Он основан на примере Spring MVC с аннотациями . Код доступен на GitHub в каталоге Spring-MVC-Form-Validation.
Данные
Для этого примера мы будем использовать аннотации проверки bean-компонента и JSR303:
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
 | 
public class MyUser {    @NotNull    @Size(min=1,max=20)    private String name;    @Min(0)    @Max(120)    private int age;    public MyUser(String name, int age) {        this.name = name;        this.age = age;    }    public MyUser() {        name = '';        age = 0;    }    // Setters & Getters} | 
страницы
Наша форма будет содержать элементы ввода, а также возможность отображения сообщений об ошибках:
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
 | 
<%@page contentType='text/html' pageEncoding='UTF-8'%><%@ taglib prefix='form' uri='http://www.springframework.org/tags/form' %><!doctype html><html><head>  <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>  <title>My User Form!</title></head><body>  <form:form method='post' action='myForm' commandName='myUser'>    <table>      <tr>        <td>Name: <font color='red'><form:errors path='name' /></font></td>      </tr>      <tr>        <td><form:input path='name' /></td>      </tr>      <tr>        <td>Age: <font color='red'><form:errors path='age' /></font></td>      </tr>      <tr>        <td><form:input path='age' /></td>      </tr>      <tr>        <td><input type='submit' value='Submit' /></td>      </tr>    </table>  </form:form></body></html> | 
Наша страница успеха:
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
 | 
<%@page contentType='text/html' pageEncoding='UTF-8'%><%@taglib prefix='form' uri='http://www.springframework.org/tags/form'%><%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %><!doctype html><html><head>  <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>  <title>Form Processed Successfully!</title></head><body>    Form processed for <c:out value='${myUser.name}' /> ! <br />    <a href='<c:url value='/'/>'>Home</a></body></html> | 
Наша домашняя страница:
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
 | 
<%@page contentType='text/html' pageEncoding='UTF-8'%><%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %><!doctype html><html lang='en'><head>  <meta charset='utf-8'>  <title>Welcome !!!</title></head><body>  <h1>    Spring Form Validation !!!  </h1><a href='<c:url value='/myForm'/>'>Go to the form!</a></body></html> | 
контроллер
 Обратите внимание, что нам нужно использовать @ModelAttribute чтобы убедиться, что экземпляр MyUser всегда доступен в модели.  В validateForm() нам нужно использовать @ModelAttribute для перемещения содержимого формы в проект MyUser. 
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
 | 
@Controllerpublic class MyController {    @RequestMapping(value = '/')    public String home() {        return 'index';    }    @ModelAttribute('myUser')    public MyUser getLoginForm() {        return new MyUser();    }    @RequestMapping(value = '/myForm', method = RequestMethod.GET)    public String showForm(Map model) {        return 'myForm';    }    @RequestMapping(value = '/myForm', method = RequestMethod.POST)    public String validateForm(        @ModelAttribute('myUser') @Valid MyUser myUser,        BindingResult result, Map model) {        if (result.hasErrors()) {            return 'myForm';        }        model.put('myUser', myUser);        return 'success';    }} | 
Maven Зависимости
Нам нужны следующие зависимости. Зависимость валидатора Hibernate необходима для обработки аннотаций JSR303:
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
 | 
<dependency>  <groupId>javax.validation</groupId>  <artifactId>validation-api</artifactId>  <version>1.0.0.GA</version>  <type>jar</type></dependency><dependency>  <groupId>org.hibernate</groupId>  <artifactId>hibernate-validator</artifactId>  <version>4.3.0.Final</version></dependency> | 
Запуск примера
  После компиляции пример можно запустить с 
  mvn tomcat: беги.  Затем просмотрите: 
| 
 1 
 | 
http://localhost:8383//spring-mvc-form-validation/. | 
Если конечный пользователь вводит недопустимые значения, будут отображаться сообщения об ошибках:
Ссылка: проверка формы Spring MVC (с аннотациями) от нашего партнера JCG Джерома Версринга в блоге Технических заметок
