重新发布的原因:我已经发布了此问题 HERE
,但我没有得到任何答案,但评论不清楚。所以我想再次发布它以获得一些帮助。
SO,
我有一个验证方法,用于检查两个密码(密码和确认密码)是否匹配。
这是我的验证方法:
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 -> "**********")
问题:一切都按预期工作但是当在字段中输入两个不同的密码时,它不会显示从validate()
方法返回的错误消息。我不知道为什么。以下是我的CSS错误。
p.error{
border-style: outset;
border-radius: 5px;
color: red;
font-weight: bold;
background-color: white;
padding: 10px 10px 10px 10px;
}
更新:我从评论中得知,我已经失去了一些动作,但我并没有完全明白。我是这个人的新手,非常感谢任何明确的帮助。
UPDATE :我尝试用validate()
方法编写return语句,如下所示:
return Context.current().flash().put("error", "Passwords do not match");
这既不奏效!这样做的问题是,它显示了return语句,但在保存了不应该发生的页面之后!
答案 0 :(得分:0)
我无法评论(必须要有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;
}
不好吗?