为什么模板中不显示 validate() 方法的错误消息?
Why error message from validate() method is not displayed in the template?
重新posting的原因:我已经post编辑了这个问题 HERE
,但我还没有回答但评论不清楚。所以我想 post 再次返回它以寻求帮助。
所以,
我有一个验证方法来检查两个密码(密码和确认密码)是否匹配。
这是我的验证方法:
public String validate() {
if (!this.password.equals(this.passwordConfirm)) {
return "Passwords do not match";
}
return null;
}
在我的 scala 中,我得到了如下信息。
@if(accountForm.hasGlobalErrors) {
<p class="error">
@accountForm.globalError.message
</p>
}
@if(flash.contains("success")) {
<p class="success">
@flash.get("success")
</p>
}
@helper.inputPassword(accountForm("password"),'_label -> "Password", 'placeholder -> "**********")
@helper.inputPassword(accountForm("passwordConfirm"),'_label -> "Confirm Password", 'placeholder -> "**********")
问题:一切都按预期工作,但是当在字段中输入两个不同的密码时,它不会显示来自 [=] 的错误消息 returned 15=] 方法。我不知道为什么。以下是我的 CSS 错误。
p.error{
border-style: outset;
border-radius: 5px;
color: red;
font-weight: bold;
background-color: white;
padding: 10px 10px 10px 10px;
}
UPDATE :我从评论中得知,我一直缺少一些动作,但我不太明白。我是新手,非常感谢任何明确的帮助。
UPDATE :我尝试在 validate()
方法中编写 return 语句,如下所示:
return Context.current().flash().put("error", "Passwords do not match");
这都没用!问题在于,它正在显示 return 语句,但在保存页面后不应该发生!
我不能发表评论(必须有 50 个声望才能做),所以我会在这里提问。绑定请求表单的控制器操作的内容是什么?
你必须有这样的东西:
public final Result submit() {
Result result = null;
Form<Something> boundForm = Form.form(Something.class).bindFromRequest();
if (boundForm.hasErrors()) {
result = badRequest(sometemplate.render(boundForm));
} else {
potentiallyDoSomethingWith(boundForm.get());
result = redirect(route.Application.somewhere());
}
return result;
}
不是吗?
重新posting的原因:我已经post编辑了这个问题 HERE
,但我还没有回答但评论不清楚。所以我想 post 再次返回它以寻求帮助。
所以,
我有一个验证方法来检查两个密码(密码和确认密码)是否匹配。
这是我的验证方法:
public String validate() {
if (!this.password.equals(this.passwordConfirm)) {
return "Passwords do not match";
}
return null;
}
在我的 scala 中,我得到了如下信息。
@if(accountForm.hasGlobalErrors) {
<p class="error">
@accountForm.globalError.message
</p>
}
@if(flash.contains("success")) {
<p class="success">
@flash.get("success")
</p>
}
@helper.inputPassword(accountForm("password"),'_label -> "Password", 'placeholder -> "**********")
@helper.inputPassword(accountForm("passwordConfirm"),'_label -> "Confirm Password", 'placeholder -> "**********")
问题:一切都按预期工作,但是当在字段中输入两个不同的密码时,它不会显示来自 [=] 的错误消息 returned 15=] 方法。我不知道为什么。以下是我的 CSS 错误。
p.error{
border-style: outset;
border-radius: 5px;
color: red;
font-weight: bold;
background-color: white;
padding: 10px 10px 10px 10px;
}
UPDATE :我从评论中得知,我一直缺少一些动作,但我不太明白。我是新手,非常感谢任何明确的帮助。
UPDATE :我尝试在 validate()
方法中编写 return 语句,如下所示:
return Context.current().flash().put("error", "Passwords do not match");
这都没用!问题在于,它正在显示 return 语句,但在保存页面后不应该发生!
我不能发表评论(必须有 50 个声望才能做),所以我会在这里提问。绑定请求表单的控制器操作的内容是什么?
你必须有这样的东西:
public final Result submit() {
Result result = null;
Form<Something> boundForm = Form.form(Something.class).bindFromRequest();
if (boundForm.hasErrors()) {
result = badRequest(sometemplate.render(boundForm));
} else {
potentiallyDoSomethingWith(boundForm.get());
result = redirect(route.Application.somewhere());
}
return result;
}
不是吗?