类 [1] 的 Grails 错误属性 [0] 不能为空 - 在基本 grails 应用程序上
Posted
技术标签:
【中文标题】类 [1] 的 Grails 错误属性 [0] 不能为空 - 在基本 grails 应用程序上【英文标题】:Grails error Property [0] of class [1] cannot be null - on basic grails app类 [1] 的 Grails 错误属性 [0] 不能为空 - 在基本 grails 应用程序上 【发布时间】:2013-04-19 18:13:30 【问题描述】:这是我的简单域类:
package projectmanagement
class Project
String Name
static constraints =
控制器上的保存方法(使用脚手架生成):
def save()
def projectInstance = new Project(params)
if (!projectInstance.save(flush: true))
projectInstance.errors.allErrors.each
println it
render(view: "create", model: [projectInstance: projectInstance])
return
flash.message = message(code: 'default.created.message', args: [message(code: 'project.label', default: 'Project'), projectInstance.id])
redirect(action: "show", id: projectInstance.id)
当我尝试保存项目时,出现以下错误:
Field error in object 'projectmanagement.Project' on field 'name': rejected value [null]; codes [projectmanagement.Project.name.nullable.error.projectmanagement.Project.name,projectmanagement.Project.name.nullable.error.name,projectmanagement.Project.name.nullable.error.java.lang.String,projectmanagement.Project.name.nullable.error,project.name.nullable.error.projectmanagement.Project.name,project.name.nullable.error.name,project.name.nullable.error.java.lang.String,project.name.nullable.error,projectmanagement.Project.name.nullable.projectmanagement.Project.name,projectmanagement.Project.name.nullable.name,projectmanagement.Project.name.nullable.java.lang.String,projectmanagement.Project.name.nullable,project.name.nullable.projectmanagement.Project.name,project.name.nullable.name,project.name.nullable.java.lang.String,project.name.nullable,nullable.projectmanagement.Project.name,nullable.name,nullable.java.lang.String,nullable]; arguments [name,class projectmanagement.Project]; default message [Property [0] of class [1] cannot be null]
sql日志显示:
Hibernate: select this_.id as id0_0_, this_.version as version0_0_, this_.name as name0_0_ from project this_ limit ?
Hibernate: select count(*) as y0_ from project this_
params.dump() 显示:
<org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap@6715e66f request=org.apache.catalina.core.ApplicationHttpRequest@2a6e8f nestedDateMap=[:] wrappedMap=[name:kkjkj, create:Create, action:save, controller:project]>
我正在使用 Grails 2.2 和 Intellij Idea IDE。虽然我过去 5-6 个月没有使用过 Grails,但我不记得以前遇到过同样的问题。
【问题讨论】:
确保dynamic
数据绑定合适。 params
有 name
?
在问题上添加了 params.dump()。似乎 params 有名字。
大部分代码也是自动生成的。我只创建了域类。
@biztiger 检查您的观点。您有一个名为 name 的字段?
我将Name
编辑为name
,但我想@biztiger 尚未接受。查看错误,似乎域类在发布问题时出现拼写错误,但实际上它有name
。
【参考方案1】:
我不确定这是否会导致问题,但在您的域类中 Name
以大写 N
开头,而参数映射包含 name
和小写 n
。
【讨论】:
非常感谢。我只是忽略了它。以上是关于类 [1] 的 Grails 错误属性 [0] 不能为空 - 在基本 grails 应用程序上的主要内容,如果未能解决你的问题,请参考以下文章
Grails 3.1.1 - 当模型类扩展另一个groovy类时,脏检查不起作用