我有一个简单的域名实体:
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
。
答案 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中,它清楚地表明nullable
与blank
不同,并且有不同的消息。
尝试
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!!!)