ble*_*tin 4 grails scaffolding grails-orm grails-domain-class
在GORM文档之后,我尝试将以下域类与Grails 2.2.1一起使用:
package grailscompositiontest
class ScafPerson {
String name
ScafAddress homeAddress
ScafAddress workAddress
static constraints = {
name(nullable: false, blank: false)
}
static embedded = ['homeAddress', 'workAddress']
}
class ScafAddress {
String number
String code
}
Run Code Online (Sandbox Code Playgroud)
控制器只使用脚手架:
package grailscompositiontest
class ScafPersonController {
static scaffold = true
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,只要我浏览到"创建"视图就会触发服务器错误:
URI: /GrailsCompositionTest/scafPerson/create
Class: java.lang.NullPointerException
Message: Cannot get property 'id' on null object
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
前几天我遇到了同样的问题.我相信脚手架功能使用的模板可能存在错误.您可以更新模板,或者如果您不想使用模板,请运行generate-all,如Benoit所述,然后修复生成的视图.
要更新模板:
sb << ' value="${' << domainInstance << '.' << property.name << '}"'
并改为
sb << ' value="${' << domainInstance << '?.' << property.name << '}"'
要修复生成的视图:
<g:field name="id" type="number" value="${scafAddressInstance.id}" required=""/>
<g:field name="version" type="number" value="${scafAddressInstance.id}" required=""/>
并改为
<g:field name="id" type="number" value="${scafAddressInstance?.id}" required=""/>
<g:field name="version" type="number" value="${scafAddressInstance?.id}" required=""/>
请注意,由于您有homeAddress/workAddress,因此您将执行两次
| 归档时间: |
|
| 查看次数: |
2935 次 |
| 最近记录: |