我正在尝试实例化一个对象并在其上设置一个属性,它来自一个请求参数,如下所示:
println "Question text from the request :" + params.question
def question = new SurveyQuestion()
question.question = params.question
println "this is our question" + question
这是我在控制台中的输出:
请求中的问题文本:测试这是我们的 questionroosearch.SurveyQuestion:null
这是SurveyQuestion
类:
class SurveyQuestion {
String question
static hasMany = [responses : SurveyQuestionResponse]
static belongsTo = [survey: Survey]
static constraints = {
}
}
以上似乎编译好了,但是当我在动作结束时进行重定向时,我得到了进一步的类广播异常,我相信这是由于SurveyQuestion
的实例化和设置,好像我发表评论出于上述情况,我没有得到这种失败的行为。
我是否正确实例化SurveyQuestion对象?当我将它打印到控制台时,为什么它显示为null?这是正常的行为吗?至少我希望它能像Java那样打印对象引用吗?
由于
答案 0 :(得分:4)
域实例上的默认toString()
方法将返回一个类似class.name: id
的字符串。由于您新创建的域实例没有id
,因此设置为null
。
尝试覆盖toString()
域中的SurveyQuestion
:
String toString() {
return question
}