Se vuoi semplicemente elencare tutti i messaggi di errore ad esempio con dei <li> in <ul> o con dei semplici <p>, il minimo (ma proprio minimo) da fare è quello che viene indicato nella documentazione
7.2 All errors
Esattamente il primo esempio, quello dove c'è un banale <ul> "condizionato" (th:if) e dentro un <li> ripetuto (th:each) per ciascun messaggio di errore.
Il minimo assoluto è quello. Ma il punto/problema è che quel "err" che si vede è solo banalmente la stringa dell'errore. E che potrebbe essere poco contestualizzata. A meno che TU abbia scritto dei messaggi di errore più precisi del tipo es. "Il campo Anno deve essere superiore o uguale a 1900".
I messaggi predefiniti per le annotazioni, che sono definiti nel Hibernate Validator, sono decisamente meno contestualizzati. Ad esempio per @Min il messaggio predefinito in italiano dice "deve essere superiore o uguale a {value}" (dove {value} è il segnaposto sostituito con il valore indicato nel @Min). La domanda è: COSA deve essere superiore? Il messaggio appunto NON lo dice (ovviamente, essendo generalizzato).
Un'altra alternativa è usare quello che è indicato in
7.5 Rich error objects. Si usa detailedErrors() che fornisce dei bean (non solo stringhe) che hanno le proprietà
fieldName,
message e
global.
In sostanza:
- ti serve il fieldName --> usi i rich error object ovvero quelli forniti da detailedErrors()
- non ti serve il fieldName o comunque hai tuoi messaggi ben contestualizzati o stai iterando solo sugli errori di un campo specifico --> usi la forma più semplice indicata all'inizio