Spring 3.1 MVC - лучшая практика работы с обработкой форм - PullRequest
3 голосов
/ 16 февраля 2012

В данный момент я пытаюсь узнать правильный рабочий процесс для отправки / проверки / обработки ошибок в Spring MVC 3.1. Нет, у меня есть несколько вопросов.

  1. Как правильно сохранить ошибки формы, связать модель с помощью перенаправления (есть встроенный способ - я его не нашел)
  2. Я знаю, что могу использовать теги формы Spring и JSR 303 для проверки (включая сообщения i18n) отправленных значений формы. Но как правильно обрабатывать ошибки, возникающие при обработке заданных значений? (например, регистрация невозможна - электронная почта уже зарегистрирована) Из Struts или не Java-фреймворков я знаю что-то вроде ActionErrors. Как правильно сделать это в Spring MVC?
  3. Как правильно перебирать ошибки формы, доступные через тег «form: errors»? Я просто хочу показать список ошибок.

Ответы [ 2 ]

4 голосов
/ 16 февраля 2012

Из справочной документации:

1.) Используйте атрибуты FlashMap из RequestContextUtils.

2). При использовании пространства имен MVC валидатор JSR-303 настраивается автоматически при условии, что в classpath доступна реализация JSR-303. Любые ConstraintViolations будут автоматически отображаться как ошибки в BindingResult, которые могут быть отображены стандартными тегами формы Spring MVC.

3.use path = "*" для отображения всех ошибок

<form:form>
      <form:errors path="*" cssClass="errorBox" />
      <table>
          <tr>
              <td>First Name:</td>
              <td><form:input path="firstName" /></td>
              <td><form:errors path="firstName" /></td>
          </tr>
          <tr>
              <td>Last Name:</td>
              <td><form:input path="lastName" /></td>
              <td><form:errors path="lastName"  /></td>
          </tr>
          <tr>
              <td colspan="3">
                  <input type="submit" value="Save Changes" />
              </td>
          </tr>
      </table>
  </form:form>
1 голос
/ 21 июля 2012

1) В Spring 3.1 вы можете использовать RedirectAttributes. Они были разработаны специально для сценария Post / Redirect / Get. Вы можете увидеть отличный пример здесь: Spring - Перенаправление после POST (даже с ошибками проверки)

2) Я думаю, что валидаторы JSR-303 должны были быть простыми, самостоятельными и независимыми друг от друга. Хотя может быть возможно написать их так, чтобы они обращались к другим персистентным сущностям и т. Д. - это не лучшая практика. Я лично проверяю дубликаты писем в контроллере. Если электронная почта уже существует, я добавляю новую ошибку FieldError в BindingResult.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...