我有一堂课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()得到它们,包括 我可以将我的保存代码更改为linkTextitemInstancelinkTextnulldef 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。