如何撰写Grails验证消息?

时间:2012-05-22 15:44:03

标签: validation grails error-handling

我有一个简单的域名实体:

package shoesshop

class Brand {

    String name
    String description
    String logoImageURL

    static constraints = {
        name(blank: false)
        logoImageURL(nullable: true)
    }
}

当我尝试保存一个名为null的新品牌时,我想要显示一条消息,上面写着“必须指定名称”。

我尝试将属性添加到messages.properties

brand.name.nullable=Brand name must be specified  

但它没有自动拾取。我该怎么从那里取回它? 我查看了brand.errors,它只包含一条默认消息

Property [{0}] of class [{1}] cannot be null

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

3 个答案:

答案 0 :(得分:2)

你试过吗?:

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”更改为

的消息(不知道这将如何与整个应用程序一起执行)
{1} {0} must be specified

答案 1 :(得分:1)

我很奇怪,当你没有可以为空的约束时,可以出现可以为空的错误信息。在空白和可空的docs中,它清楚地表明nullableblank不同,并且有不同的消息。

尝试

brand.name.blank

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

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

答案 2 :(得分:0)

我正在使用Grails 2.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!!!)