0

我有这个:

class Usuario {

        String username
        String password
        String passwordDos
        String nombre
        String apellidoPaterno
        String apellidoMaterno
        Date fechaDeNacimiento
        String sexo
        String correo

    static constraints = {
        username blank: false, unique: true, validator: { val, obj ->
                                            obj.password != val
                                            return ['usuario.userPassError'] 
                                        }
        password blank: false, validator: { val, obj ->
                                                    obj.passwordDos == val
                                                        return ['usuario.passDiferentes']    
                                                }
                passwordDos blank: false
                nombre   blank: false, maxSize: 64
                apellidoPaterno blank: false, maxSize: 64
                apellidoMaterno blank: true, maxSize: 64
                sexo inList: ["Femenino", "Masculino"]
                correo   blank: false, maxSize: 128, email:true       
    }
}

我想返回错误消息,但我没有做错,我可以解释一下 alguein 吗?

4

1 回答 1

2

我希望验证器闭包中有某种条件返回。就目前而言,看起来他们总是会失败,返回错误代码。

尝试编写您的自定义验证器,例如:

// username validator
validator: { val, obj ->
    obj.password == val ? 'userPassError' : true
}

// password validator
validator: { val, obj ->
    obj.passwordDos != val ? 'passDiferentes' : true
}

请注意返回的不同消息代码。

然后,确保您的相应grails-app/i18n/messages*文件中有以下内容:

usuario.username.userPassError = Username and password cannot be the same
usuario.password.passDiferentes = Password does not match password confirmation
于 2012-01-13T21:45:30.470 回答