播放框架Scala验证

时间:2015-02-27 08:52:42

标签: java scala playframework template-engine play-helpers

我正在尝试实施密码更改。

我在scala中得到以下两行。但是,即使我在两个字段(Password& Confirm Password)中输入了不同的密码,它也会保存第一个字段密码而不进行验证。

如果输入了不同的密码,我需要它来验证并显示消息。

@helper.inputPassword(accountForm("Password"),'id -> "f_password", '_label -> "Password", 'placeholder -> "**********")
@helper.inputPassword(accountForm("Password"),'id -> "f_password", '_label -> "Confirm Password", 'placeholder -> "**********")

我用谷歌搜索但似乎无法找到确切的解决方案。非常感谢任何帮助。

更新

我在NewPasswordController.java的控制器中有以下方法

public class NewPasswordController extends Controller {
    public static class NewPassword {
    @Required
    protected String newPassword = "";
    @Required
    protected String confirmPassword = "";

    public String getNewPassword() { return this.newPassword; }

    public void setNewPassword(String newPassword) { this.newPassword = newPassword; }

    public String getConfirmPassword() { return this.confirmPassword; }

    public void setConfirmPassword(String confirmPassword) { this.confirmPassword = confirmPassword; }

    public String validate() {
        if(!newPassword.equals(confirmPassword)) {
            return "Opps, it seems that you may have mis-typed the password, please try again.";
        }
        return null;
    }
}

但我不知道如何在我的SCALA中使用它。

我试过跟随

@helper.form(action = routes.NewPasswordController.NewPassword()) {

但这不起作用,因为我的路线文件没有它。所以,我不确定如何在路线中提及NewPasswordController(我的意思是它得到或设置)。

1 个答案:

答案 0 :(得分:1)

不知道你使用的方式实际上是否有效, 但我认为你需要两个密码输入

@helper.inputPassword(accountForm("password"),'id -> "f_password", '_label -> "Password", 'placeholder -> "**********")
@helper.inputPassword(accountForm("confirmPassword"),'id -> "r_password", '_label -> "Confirm Password", 'placeholder -> "**********")

accountForm

中需要这样的内容
public String confirm() {
    if (passwod!=confrimPassword) {
        return "password did not match";
    }
    return null;
}//offcourse you can convert into scala