我正在使用具有自定义验证和 play.data.validation.constraints 的 Java Play 2.0.1,并且正在寻找一种方法来显示表单中发生的每个错误,无论我的代码是否正在验证或 Play 是否正在验证。
我目前正在做什么来显示所有错误,是我的控制器中有一个方法可以添加从中检索到的 Map 中包含的所有错误form.errors()
,然后将它们添加到 flash 范围内,这意味着所有错误将被检测到,但不会在第一次重定向时显示,直到 play.data.validation 错误得到修复。
public static void addFlashError(Map<String, List<ValidationError>> errors){
for(String key : errors.keySet()){
List<ValidationError> currentError = errors.get(key);
for(ValidationError error : currentError){
flash(key, error.message());
}
}
}
然后在我的 scala.html 中显示错误
<div class="alert-message error">
@for((key, value) <- flash){
<strong>Error : </strong> @value<br />
}
</div>
但这似乎不是最简单的解决方案,并且 Play 不会在 play.data.validation 错误的同时显示自定义验证错误,因为看起来好像显示了 play.data.validation 错误,并且然后如果没有 Play 检查String validate()
表单包装的类中是否包含公共内容。
是否有一种简单的方法来显示表单中的所有错误,而不是 play.data.validation 错误,如果 play.data.validation 错误不存在则自定义验证错误?