Chciałbym zrobić walidację pól na klasie Book. Mam tak:
Book.java
@Size(min = 8, max = 12)
private String isbn;
Kontroler:
@RequestMapping("/saveBook")
public ModelAndView saveBookData(@RequestParam("author_id") int authorId, @Valid @ModelAttribute("book") Book book,
BindingResult result) {
if (result.hasErrors()) {
LOG.info("ERRORS IN FORM");
return new ModelAndView("redirect:/bookAction.html?bookAdd", result.getModel());
}
...
Formularz w FTL (sam początek, żeby sprawdzić czy coś wyłapuje):
<#include "layout.ftl"/>
<@spring.bind "book"/>
<@spring.showErrors '*', 'errors' />
<#if spring.status.error>
<div class="errors">
There were problems with the data you entered:
<ul>
<#list spring.status.errorMessages as error>
<li>${error}</li>
</#list>
</ul>
</div>
<#else>
<div class="errors">
There are no errors.
</div>
</#if>
Skutek jest taki, że na formularza zawsze jest wyświetlane:
There are no errors.
ale już na konsoli:
INFO - ERRORS IN FORM
Ktoś orientuje się gdzie tu brakuje powiązania? Na necie brak kompletnego przykładu na spring + ftl, tylko snippety z problemami.