我有一堂课Item
:
class Item {
String title
String description
String linkText
String linkUrl
static constraints = {
title blank: false
description blank: false
linkText blank: false
linkUrl blank: false, url: true
}
当我尝试保存一个新的Item
使用实例时
def itemInstance = new Item(params)
itemInstance.save()
我收到验证错误:
Property [linkText] of class [class Item] cannot be null
我有两个问题:
linkText
就在形式中,在<g:textField>
with 中name="linkText"
。为什么它不受约束itemInstance
?如果我在 a之前打印出参数,我会save()
得到它们,包括 我可以将我的保存代码更改为linkText
itemInstance
linkText
null
def itemInstance = new Item(params) itemInstance.linkText = params.linkText
它将被保存而没有任何问题和使用
params.linkText
。但为什么我必须这样做?现在是linkText
保留关键字还是什么?(我只知道那不是在 2008 年。)为什么我收到“可空”错误而不是“空白”错误?它们是不同的错误。我
messages.properties
为此有一条自定义消息,但即使 Grails 现在不想使用它,我希望它会给我它的default.blank.message
(“<code>Property [{0}] of class [{1}]不能是空白的”)。
该列表中的第一名对我来说是最令人担忧的,但我真的不明白为什么 Grails 一开始就将这个领域与其他三个领域有任何不同Strings
。