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']
        } )
    }
}

このクラスでは as と宣言confirmPasswordしましtransientsたが、confirmPasswordNULLはフォームの送信時に a のみを出力します。

<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 に答える