我在Grails项目中有这样的控制器:Grails领域构造没有工作
def submit() {
def json = request.JSON
Share share = new Share(json)
share.save(flush: true, failOnError: true)
}
类股看起来是这样的:
class Share {
String timestamp
String deviceName
String originMessage
Share(JSONObject originalMessage) {
println "Run JSON constructor"
println "$originalMessage"
originMessage = originalMessage.toString()
timestamp = originalMessage.timestamp
deviceName = originalMessage.device
}
它收到
JSON请求,并尝试在坚持数据库。
我在控制台得到failOnError这样的错误:在对象
- 场误差现场“com.entity.Share”“设备名称”:拒绝值[空]
- 字段'originMessage'上的对象'com.entity.Share'中的字段错误:rejected value [null];代码
大量的跳舞找到一种可能的方式:在控制器中将JSON转换为字符串并将其传递给构造函数,其中参数将是String类型,然后使用JSON转换器将其解析为JSON。但为什么我无法正确传递JSON对象作为参数。怎么了?
删除你的构造,并再次尝试空。 Grails已经有了这样的领域类的构造函数。 –
是的,我知道,但我不喜欢构造函数的映射风格。然而,为什么我看到这样奇怪的行为? – sphinks