我使用带有 Hibernate Validator 的 Spring 3.1。我想访问我的 i18n 属性文件以在自己的验证类中获取我的验证错误字符串。要获取此消息,我使用:
@Autowired
private MessageSource messageSource;
String message = messageSource.getMessage("ID", null, Locale.ENGLISH);
这适用于正常的 GET/POST 请求。但是,如果我使用 ajax 调用,我会收到以下错误:
javax.validation.ValidationException:HV000028:isValid 调用期间出现意外异常。在 org.hibernate.validator.internal.engine.ConstraintTree.validateSingleConstraint(ConstraintTree.java:311) 在 org.hibernate.validator.internal.engine.ConstraintTree.validateConstraints(ConstraintTree.java:180) 在 org.hibernate.validator.internal .engine.ConstraintTree.validateConstraints(ConstraintTree.java:124) 在 org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:86) 在 org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint (ValidatorImpl.java:442) 在 org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:387) 在 org.hibernate.validator.internal.engine.ValidatorImpl。
我还尝试在控制器中调用 messageSource.getMessage(也在 AJAX 请求之后),在这里它可以工作。如果是 AJAX 调用,验证器类似乎无法访问 messageSource。
任何建议如何解决这个问题?