根据http://www.playframework.com/documentation/2.1.1/JavaForms页面“自 2.0.2 起,验证方法可以返回以下类型:字符串、列表或地图>”
但似乎并非如此。
1)返回String时工作正常</p>
2 和 3) 列表和地图> 不起作用
下面提供的日志
[2013-06-18 17:59:00.108] 调试 play-akka.actor.default-dispatcher-7 logging:make:28 - 日志提供程序:org.jboss.logging.Log4jLoggerProvider
[2013-06-18 17:59:00.110] 信息 play-akka.actor.default-dispatcher-7 版本::27 - HV000001: Hibernate Validator 4.3.0.Final
[2013-06-18 17:59:00.119] 调试 play-akka.actor.default-dispatcher-7 DefaultTraversableResolver:detectJPA:106 - 在包含“getPersistenceUtil”的类路径上找到 javax.persistence.Persistence。假设 JPA 2 环境。尝试实例化 JPA 感知 TraversableResolver
[2013-06-18 17:59:00.120] 调试 play-akka.actor.default-dispatcher-7 DefaultTraversableResolver:detectJPA:117 - 实例化 JPA 感知 TraversableResolver 类型为 org.hibernate.validator.internal.engine.resolver.JPATraversableResolver。
[2013-06-18 17:59:00.122] 调试 play-akka.actor.default-dispatcher-7 ValidationXmlParser:getValidationConfig:184 - 尝试为基于 XML 的验证器配置加载 META-INF/validation.xml。
[2013-06-18 17:59:00.126] 调试 play-akka.actor.default-dispatcher-7 ValidationXmlParser:getValidationConfig:187 - 未找到 META-INF/validation.xml。仅使用基于注释的配置。
[2013-06-18 17:59:00.302] 调试 play-akka.actor.default-dispatcher-7 PlatformResourceBundleLocator:getResourceBundle:72 - 找不到验证消息。
[2013-06-18 17:59:00.304] 调试 play-akka.actor.default-dispatcher-7 PlatformResourceBundleLocator:getResourceBundle:69 - 找到了 org.hibernate.validator.ValidationMessages。
应该承认,根据 lo 日志格式,它不是由 play.Logger 创建的,而是由另一个创建的。
任何人都可以提供返回 List 或 Map> 的 validate() 方法的代码片段以及一些关于它的附加信息。
public Map<String, List<ValidationError>> validate() {
Map<String,List<ValidationError>> errors = new HashMap<>();
if (User.find.where().eq("login", login).findRowCount() > 0) {
List<ValidationError> errorList = new ArrayList<>();
errorList.add(new ValidationError("login", Messages.get("user.registration.notUniqueLogin", login), null));
errors.put("login", errorList);
}
if (User.find.where().eq("email", email).findRowCount() > 0) {
List<ValidationError> errorList = new ArrayList<>();
errorList.add(new ValidationError("email", Messages.get("user.registration.notUniqueEmail", email), null));
errors.put("email", errorList);
}
return errors;
}