2012-07-02 7 views
3

Я использую Java Play 2.0.1 как с пользовательской проверкой, так и с play.data.validation.constraints, и я ищу средство для отображения каждой ошибки, которая встречается в форме независимо от проверяется ли мой код или есть ли игра.Показать все ошибки проверки Использование flash()

Что я сейчас делаю, чтобы отображать все ошибки, есть ли у меня метод в моем контроллере, чтобы добавить все ошибки, содержащиеся в Карте, полученные из form.errors(), а затем добавить их в область флэш-памяти, которая выполняет задание в смысл, что все ошибки будут обнаружены, но не будут отображаться при первом переадресации до тех пор, пока ошибки play.data.validation не будут исправлены.

public static void addFlashError(Map<String, List<ValidationError>> errors){ 
     for(String key : errors.keySet()){ 
      List<ValidationError> currentError = errors.get(key); 
      for(ValidationError error : currentError){ 
       flash(key, error.message()); 
      } 
     } 
    } 

Тогда в моем scala.html, чтобы отобразить ошибки

<div class="alert-message error"> 
     @for((key, value) <- flash){ 
      <strong>Error : </strong> @value<br /> 
     } 
    </div> 

Но это, кажется, не самым простым решением, и воспроизведение не отображает ошибки пользовательских проверки в то же время, ошибки play.data.validation, поскольку это выглядит так, как будто отображаются ошибки play.data.validation, а затем, если нет ни одного Play, проверьте, существует ли общедоступный String validate(), содержащийся в классе, который обертывает форма.

Есть ли простой способ отображать все ошибки в форме, а не ошибки play.data.validation, а затем ошибки пользовательской проверки, если ошибки воспроизведения.data.validation не существуют?

+0

Почему вы добавляете свои ошибки во флеш? Почему бы вам просто не передать «Map >» на ваш взгляд? Кроме того, вы задаете 2 вопроса ..;) –

+0

Я полагаю, вы правы в отношении двух вопросов, жаль, что я отредактирую, чтобы исправить это. И что касается того, почему я добавляю во флеш-память, это должно было сохранить ошибки в области для перенаправления. –

ответ

0

То, что я сделал, это позвонить form.hasErrors() и сохранить это значение в переменной. Затем вы выполните всю свою собственную проверку. Захватите form.errors() (как вы делали), и если вы найдете какие-либо ошибки, вставьте их прямо в эту карту. Если были какие-либо ошибки проверки, то возвращайтесь с badRequest(), как обычно, в экземпляр Form (который содержит карту ошибок со всеми ошибками).

+0

Наверное, последнее признание ответа всегда, но спасибо за это. Просто повторил эту проблему и напомнил, что я поставил на этот вопрос вопрос, и это все еще кажется лучшим решением. –

Смежные вопросы