2010-11-25 3 views
3

J'essaie de faire une validation de printemps avec les messages d'erreur dans les fichiers de propriétés. Mais les exemples que je trouve tous semblent avoir les valeurs codées en dur, ou obtenues à partir d'un fichier de propriétés mais en utilisant une classe de validateur et en les récupérant là.validation de printemps avec @valid où/comment messages d'erreur personnalisés

Ma configuration est un peu différente. J'utilise l'annotation @Valid dans ma mapping de requêtes, et ma classe @Valid utilise @NotNull etc. J'ai vu des exemples où les gens font @NotNull (message = "blablabla"); Mais c'est aussi codé en dur, et je voudrais mettre les messages dans un fichier de propriétés afin que je puisse facilement le modifier à la volée et que je puisse facilement implémenter i18n dans le futur.

Toute contribution sur la façon d'y parvenir serait appréciée.

Répondre

8

Cela fonctionne exactement de la même manière qu'avec Validator explicite - vous declare a MessageSource et écrire des messages d'erreur dans les fichiers .properties. codes de messages sont réalisés sous la forme constraintName.modelAttributeName.propertyName:

publib class Foo { 
    @NotNull private String name; 
    ... 
} 

.

@RequestMapping 
public String submitFoo(@Valid Foo foo, ...) { ... } 

messages.properties:

NotNull.foo.name=... 

MessageSource déclaration:

<bean id="messageSource" 
    class="org.springframework.context.support.ResourceBundleMessageSource"> 
    <property name="basename" value = "messages" /> 
</bean> 
Questions connexes