Validation 如何编写Grails验证消息?

Validation 如何编写Grails验证消息?,validation,grails,error-handling,Validation,Grails,Error Handling,我有一个简单的域实体: package shoesshop class Brand { String name String description String logoImageURL static constraints = { name(blank: false) logoImageURL(nullable: true) } } 当我试图用空值作为名称保存一个新品牌时,我想呈现一条消息,上面写着“必须指定名称

我有一个简单的域实体:

package shoesshop

class Brand {

    String name
    String description
    String logoImageURL

    static constraints = {
        name(blank: false)
        logoImageURL(nullable: true)
    }
}
当我试图用空值作为名称保存一个新品牌时,我想呈现一条消息,上面写着“必须指定名称”

我试图向
消息添加属性。属性

brand.name.nullable=Brand name must be specified  
但它不是自动拾取的。我应该如何从那里取回它? 我查看了
brand.errors
,它只包含一条默认消息

类[{1}]的属性[{0}]不能为空

它还包含一组错误代码,其中一个是
brand.name.nullable

您尝试过吗?:

if(brand.name==null)
{
    flash.message = message(code: 'brand.name.nullable',default:'Brand name must be specified.');
    render(view: "create", model: [brand:brand])
    return
}
您可以尝试将“default.null.message”的消息(不知道整个应用程序将如何执行)更改为

你试过了吗

if(brand.name==null)
{
    flash.message = message(code: 'brand.name.nullable',default:'Brand name must be specified.');
    render(view: "create", model: [brand:brand])
    return
}
您可以尝试将“default.null.message”的消息(不知道整个应用程序将如何执行)更改为


我感到奇怪的是,当您没有可为null的约束时,会显示可为null的错误消息。在“空白”和“可空”字段中,它清楚地显示了
nullable
blank
不同,并且有单独的消息

试一试

我似乎还必须添加
.error
,才能使事情正常运行:

brand.name.blank.error or brand.name.nullable.error

我感到奇怪的是,当您没有可为null的约束时,会显示可为null的错误消息。在“空白”和“可空”字段中,它清楚地显示了
nullable
blank
不同,并且有单独的消息

试一试

我似乎还必须添加
.error
,才能使事情正常运行:

brand.name.blank.error or brand.name.nullable.error

我正在使用Grails2.2.3。对我来说,当我使用

brands.name.blank=The name cannot be empty
现在,如果在收到此错误后刷新页面“../appname/controllername/save”,则

Property [name] of class [class ...] cannot be null
此消息可以使用更改

brands.name.nullable=The name cannot be null (do not refresh the page!!!)

我正在使用Grails2.2.3。对我来说,当我使用

brands.name.blank=The name cannot be empty
现在,如果在收到此错误后刷新页面“../appname/controllername/save”,则

Property [name] of class [class ...] cannot be null
此消息可以使用更改

brands.name.nullable=The name cannot be null (do not refresh the page!!!)

这是因为当用户从Web上提交时,“名称”将是一个空字符串而不是NULL。这就是我所说的,当用户提交一个空白字段时,他不会像他那样得到空白错误消息。他得到的是可空的消息,这是因为当用户从Web上提交时,“名称”将是一个空字符串而不是NULL。这就是我所说的,当用户提交空白字段时,他不会像他那样得到空白错误消息。他收到了一条可取消的消息。