Frage

Ich versuche, einige Feder Validierung mit den Fehlermeldungen in Properties-Dateien zu tun. Aber die Beispiele, die ich alle finden scheinen die Werte fest einprogrammiert haben oder aus einer Properties-Datei bekommen, sondern eine Validator-Klasse und dort abgerufen werden.

Mein Setup ist ein bisschen anders. Ich verwende die @Valid Anmerkung in meiner requestmapping und meine @Valid Klasse verwendet @NotNull usw. Ich habe einige Beispiele gesehen, wo die Menschen tun @NotNull (message = „blablabla“); Aber das ist auch fest einprogrammiert, und ich mag die Nachrichten in einer Eigenschaftsdatei setzen, so kann ich leicht bearbeiten sie im Fluge und so ich leicht i18n in Zukunft umsetzen kann.

Jede Eingabe, wie dies zu erreichen würde geschätzt.

War es hilfreich?

Lösung

Es funktioniert genauso wie mit expliziten Validator - Sie deklariert eine MessageSource und Schreibfehlermeldungen in .properties Dateien. Nachrichten-Codes werden als constraintName.modelAttributeName.propertyName gebildet:

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

.

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

messages.properties:

NotNull.foo.name=...

MessageSource Erklärung:

<bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value = "messages" />
</bean>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top