grails:如何具体检查字段值的有效性

时间:2014-05-23 21:11:04

标签: grails

getFieldError("user_name").rejectedValue

如果我有一个上面的字段,我按如下方式设置约束:

user_name(blank: false, unique: true, email: true)

如何在每种情况下专门检查违规情况,以便在每种情况下自定义错误消息?目前我有以下内容,但只有在我尝试使用空字段提交表单时才能在第一种情况下起作用:

def errorVal = createdUser.errors.getFieldError("user_name").rejectedValue

        if (errorVal == null)
            render(contentType: 'text/json') {["message": 'Username cannot be blank!']}
        else if (errorVal == invalid)
            render(contentType: 'text/json') {["message": 'Username must be an e-mail address!']}
        else if (errorVal == unique)
            render(contentType: 'text/json') {["message": 'Username already exists for picked institution!']}

如果我尝试通过在非电子邮件地址字段中放置某些内容来测试第二种情况,我会在控制台中收到此错误:

No such property: invalid for class: com.twc.fatcaone.AdminController

1 个答案:

答案 0 :(得分:1)

与其他人发布的优秀答案一样,我建议遵循内置框架指南,但是,如果您希望可以使用EmailValidator类来检查有效的电子邮件地址。已经检查了唯一性,但如果您有其他自定义条件,则可以使用AND在不同的条件下搜索数据库,如果结果是肯定的,则您知道它不是唯一的。同样,这可能并不总是最好的解决方案。