Я сейчас смотрю Play! Framework для Java, и я столкнулся с довольно любопытной ошибкой:Ошибка проверки формы Form Framework формы
я получил модель со следующими необходимыми полями (никаких других полей, кроме идентификатора)
@Lob
@Constraints.Required
private String content;
@Constraints.Email
@Constraints.Required
private String email;
@Constraints.Required
private String title;
У меня есть следующие методы в моем контроллере:
public static Result createEntry() {
Form<BlogEntry> filledForm = blogEntryForm.bindFromRequest();
if (filledForm.hasErrors()) {
Logger.debug(filledForm.data().toString());
Logger.debug(filledForm.errors().toString());
return badRequest(newentry.render(filledForm));
}
BlogEntry entry = filledForm.get();
entry.save();
return redirect(routes.BlogController.index());
}
public static Result newEntry() {
return ok(newentry.render(blogEntryForm));
}
И вид выглядит следующим образом:
@(blogform: Form[BlogEntry])
@import helper._
@main("New Blog Entry") {
@form(routes.BlogController.createEntry()) {
@if(blogform.hasErrors) {
Errors in form
}
<fieldset>
<div>
@inputText(blogform("email"), '_label -> "Email")
</div>
<div>
@inputText(blogform("title"), '_label -> "Title")
</div>
<div>
@inputText(blogform("content"), '_label -> "Content")
</div>
<button type="submit">Submit</button>
</fieldset>
}
}
Теперь, когда я навигации в форму в моем браузере и введите некоторые данные, затем нажмите «отправить», я перенаправляюсь к форме, поэтому была вызвана часть кода badRequest
. Так что я начал протоколирование вывода обоего форм и проверок ошибок, и это вышло:
[отладка] приложение - {содержание = тест, название = тест, [email protected]}
[отлаживать ] application - {content = [ValidationError (content, error.required, [])], title = [ValidationError (title, error.required, [])], email = [ValidationError (email, error.required, []) ]}
Данные, безусловно, есть, и когда я перенаправлен в форму после отправки, поля по-прежнему заполняются правильными данными. Я пропустил что-то очевидное здесь?
wow да, и мой друг имел тот же код в своем репо без геттеров и сеттеров, и он работал. Но он использовал Java 8, и я 7. Интересно, если бы это имело к этому какое-то отношение. –