validazione primavera con @valid dove / come i messaggi di errore personalizzato
-
28-09-2019 - |
Domanda
Sto cercando di fare un po 'di validazione primavera con i messaggi di errore nel file di proprietà. Ma gli esempi che ho trovato tutti sembrano avere i valori hardcoded, o ottenuto da un file di proprietà, ma con una classe di convalida e il recupero di lì.
La mia configurazione è un po 'diverso. Sto usando l'annotazione @Valid nel mio requestmapping, ed i miei usi classe @Valid @NotNull etc. Ho visto alcuni esempi in cui la gente fa @NotNull (message = "blablabla"); Ma questo è anche hard-coded, e mi piacerebbe mettere i messaggi in un file di proprietà in modo da poter facilmente modificare al volo e in modo da poter implementare facilmente i18n in futuro.
Qualunque input su come raggiungere questo sarebbe apprezzato.
Soluzione
Funziona esattamente allo stesso modo con Validator
esplicito - si dichiarano un MessageSource
e messaggi di errore di scrittura nei file .properties
. codici Messaggi sono formati come constraintName.modelAttributeName.propertyName
:
publib class Foo {
@NotNull private String name;
...
}
.
@RequestMapping
public String submitFoo(@Valid Foo foo, ...) { ... }
messages.properties
:
NotNull.foo.name=...
dichiarazione MessageSource
:
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value = "messages" />
</bean>