0

我有以下域类:

class UserAccount {
    String userName
    String password
    String confirmPassword

    static transients = ['confirmPassword']

    static constraints = {
        userName blank: false, nullable: false
        password blank: false, nullable: false
        userName(unique: true)
        password(password: true)
        password(blank: false, nullable: false, size:5..20, validator: {password, obj ->
            def confirmPassword= obj.properties['confirmPassword']
            //println(confirmPassword)
            confirmPassword== password ? true : ['invalid.matchingpasswords']
        } )
    }
}

在这个类中,我声明confirmPassword为,transients但确认密码仅NULL在提交表单时打印。

<g:field type="password" name="confirmPassword" required="" value="${userAccountInstance?.confirmPassword}"/>

如果我删除它transients,它工作正常,但我不想在数据库中使用这个值,所以我使用transients

还有另一种方法可以在这里进行验证吗?

4

1 回答 1

0

你有一个错字,输入字段应该命名为confirmPassword

<g:field type="password" name="confirmPassword".../>

更新:

为密码做一个单一的约束:

static constraints = {
    password blank: false, password: true, size:5..20, validator: {password, obj ->
        def confirmPassword = obj.confirmPassword
        //println(confirmPassword)
        confirmPassword== password ?: ['invalid.matchingpasswords']
    } )
}
于 2013-10-22T12:41:05.737 回答