私はこのような簡単なクラスを持っています、
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
public class Form implements Serializable {
@NotNull
@Length(min = 2, max = 20)
private String lastName;
}
クラスパスにmessages.propertiesファイルがあります。次に、次のようにSpringBeanを介してロードされます。
<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>classpath*:messages.properties</value>
</list>
</property>
</bean>
私が欲しいのは、検証されたBeanに従ってカスタマイズされたエラーメッセージを取得することです。つまり、各ConstraintViolationオブジェクトに、デフォルトのエラーメッセージではなく、プロパティファイルで定義したエラーメッセージを返してもらいたいのです。この形式{xxx.yyyy.zzzz}のような値でメッセージプロパティを追加し、messages.propertiesファイルからそのメッセージを参照することは可能ですか?
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<Form>> inputErrors = validator.validate(form);
@NotNullと@Lengthのデフォルトのメッセージをカスタマイズしたい場合、どうすればよいですか?
Hibernate検証に関する私の経験はゼロです。サンプルコードまたはステップバイステップガイド をいただければ幸いです。