首先我要声明,我认为,对2.0播放文件是真的,真的很糟糕的。
我正在寻找一种方式来放置HTML下方的验证错误选择喜欢打会做一个自动生成的输入框。
我试图复制的播放输入框生成的HTML代码的结构,但我敢肯定,我失去了我的HTML代码中的一些IFERROR - 斯卡拉模板线。
坏这是不可能找到播放2.0文档已被播放<2.0文档涉及的主题。 所以,如果你正在寻找的文档解决方案,您将土地上的旧,不工作,文档。 很沮丧!
首先我要声明,我认为,对2.0播放文件是真的,真的很糟糕的。
我正在寻找一种方式来放置HTML下方的验证错误选择喜欢打会做一个自动生成的输入框。
我试图复制的播放输入框生成的HTML代码的结构,但我敢肯定,我失去了我的HTML代码中的一些IFERROR - 斯卡拉模板线。
坏这是不可能找到播放2.0文档已被播放<2.0文档涉及的主题。 所以,如果你正在寻找的文档解决方案,您将土地上的旧,不工作,文档。 很沮丧!
我用这个代码的形式来显示全球引导对话框:
@if(form.hasErrors) {
<div class="alert alert-error">
<a class="close" data-dismiss="alert">x</a>
@if(form.errors.size() > 0) {
@for((key, value) <- form.errors) {
@key.toString() :
@for(err <- value) {
@err.message().toString()
}
}
} else {No error returned.}
</div>
}
用于形状误差键-值对的输出是具有自举警告框@key.toString() : @value.message.toString
。
如果你想显示在外地的错误,而不是,你想用的form.errors地图值,以便它不仅引发了特定领域的另一个条件语句稍微修改它。 我没有测试过这一点,但它会去是这样的:
@if(form.hasErrors) {
@if(form.errors.size() > 0) {
@for((key, value) <- form.errors) {
@for(err <- value) {
@if(err.contains("YourSelectFieldName")) {
@err.message().toString()
}
}
}
}
}
从2manyprojects答案的作品非常好,但你可以做同样的事情在控制器中。 这一切都取决于你的喜好和风格。
public static Result save() {
Form<form> boundForm = form.bindFromRequest();
if (boundForm.hasErrors()) {
String errorMsg = "";
java.util.Map<String, List<play.data.validation.ValidationError>> errorsAll = boundForm.errors();
for (String field : errorsAll.keySet()) {
errorMsg += field + " ";
for (ValidationError error : errorsAll.get(field)) {
errorMsg += error.message() + ", ";
}
}
flash("error", "Please correct the following errors: " + errorMsg);
return badRequest(detail.render(boundForm));
}