Verwenden Sie benutzerdefinierte Gültigkeitsprüfung Nachrichten, die in Hibernate + Spring
Ich habe versucht, die Schritte aus der Antwort hier: Hibernate Validator, benutzerdefinierte ResourceBundleLocator und Frühling
Aber noch immer nur {location.title.notEmpty}
als Ausgang statt der Nachricht.
dispatcher-servlet.xml
<bean name="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="validationMessageSource">
<ref bean="resourceBundleLocator"/>
</property>
</bean>
<bean name="resourceBundleLocator" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>/WEB-INF/validationMessages</value>
</list>
</property>
</bean>
/WEB-INF/validationMessages.Eigenschaften:
location.title.notEmpty=My custom message
Form (Klasse Location)
@NotEmpty( message = "{location.title.notEmpty}" )
private String title;
Was läuft hier falsch?
- Ich weiß nicht, ob dies könnte dazu führen, dass problem, aber stellen Sie sicher, dass der message-properties-Datei eine leere Zeile als Letzte Zeile.
- NÖ, war nicht das problem, die Letzte leere Zeile nicht nötig
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hab! 🙂
Habe ich noch folgende bean statt der oben genannten zwei in meinem
dispatcher-servlet.xml
:Dann, in meinem validationMessages.Eigenschaften, die ich verwendet die folgende syntax:
Ich denke, dies ist der Grund: ich habe die Hibernate validation Annotationen (nicht javax sind)
Sowie Allgemeine syntax der Nachrichten-Datei Aussehen sollte
Hoffe, dies hilft, einige andere Menschen da draußen 😉
Zugriffs auf die Nachricht von einem Frühling-controller fügen Sie einfach
@Autowired private MessageSource messageSource;
als ein Klasse-Feld, und verwenden Sie diemessageSource.getMessage
Methoden. Weil ich bin nur mit einer Sprache, die ich verwendetmessageSource.getMessage( "NotEmpty.location.title", null, null )