Ich kann nicht "überschreiben" @NotEmpty Nachricht mit .Eigenschaften
Ich studiere im Frühjahr 3 und im Versuch zu validieren, die eine form mit der Klasse org.hibernate.validator.constraints.NotEmpty
.
Im in der Lage, beispielsweise das überschreiben der @Size
Nachricht (javax.validation.constraints.Size
) und die @Email
Nachricht (org.hibernate.validator.constraints.Email
) abrufen der Nachrichten aus .Eigenschaften-Datei.
Aber im nicht in der Lage, zu überschreiben org.hibernate.validator.constraints.NotEmpty
Standard-Nachricht. Ich bekomme immer die Standard-Meldung "kann nicht leer sein"
dies ist mein XXXX-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<mvc:annotation-driven/>
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
</mvc:interceptors>
<context:component-scan base-package="com.springgestioneerrori.controller" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="defaultEncoding" value="UTF-8"/>
</bean>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" >
<property name="defaultLocale" value="en"/>
</bean>
<bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<ref bean="localeChangeInterceptor" />
</property>
</bean>
</beans>
Dies ist mein User-Klasse
package com.springgestioneerrori.model;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
public class Utente {
@NotEmpty
@Size(min=3,max=20)
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Dies ist meine form
.......
<form:form action="formSent" method="post" commandName="utente">
<form:errors path="*" cssClass="errorblock" element="div" /><br/><br/>
<spring:message code="form.label.utente.nome"/><form:input path="nome"/><form:errors path="nome" cssClass="error" /><br>
<input type="submit">
</form:form>
......
dies ist mein controlller
........
@RequestMapping("/formSent")
public String formSent(Model model, @Valid Utente utente, BindingResult result){
if(result.hasErrors()){
model.addAttribute("utente", utente);
return "form";
}
else{
model.addAttribute("msg", "inserimento effettuato con successo");
return "formSent";
}
}
.........
dies ist mein propertis Datei
NotEmpy.utente.nome = il campo nome non può essere vuoto //Im NOT able to get this message
Size.utente.nome = Il nome deve contenere tra 2 e 30 lettere //Im able to get this message
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie eine Datei erstellen, die
ValidationMessages.properties
und legen Sie Sie in den Klassenpfad Ihrer Anwendung. Der Hibernate-validator verwenden Sie dieorg.hibernate.validator.constraints.NotEmpty.message
Schlüssel zum übersetzen der NachrichtHaben Sie einen Blick hier für weitere Informationen:
http://docs.jboss.org/hibernate/validator/4.3/reference/en-US/html/validator-usingvalidator.html#section-message-interpolation
UPDATE
Für das anpassen einer einzelnen Nachricht so etwas wie dieses:
Versuchen, diese -
@NotEmpty( message = "{NotEmpy.utente.nome}" )
private String nome;
Danke für Eure Hilfe. Machte ich einen sehr dummen Fehler. Innerhalb der properties-Datei, die ich schrieb, NotEmpy statt NotEmpty. Sorry for waisting Sie mal 🙂