0

オブジェクトをインスタンス化し、その上に単一の属性を設定しようとしています。これは、次のようにリクエストパラメーターから取得されます。

println "Question text from the request :" + params.question

def question = new SurveyQuestion()
question.question = params.question

println "this is our question" + question

これはコンソールでの私の出力です:

リクエストからの質問テキスト :test これは私たちの questionroosearch.SurveyQuestion : null

そして、これはSurveyQuestionクラスです:

class SurveyQuestion {

    String question

    static hasMany = [responses : SurveyQuestionResponse]
    static belongsTo = [survey: Survey]

    static constraints = {
    }
}

上記は正常にコンパイルされているようですが、アクションの最後にリダイレクトを実行すると、さらにクラスキャストの例外が発生しSurveyQuestionます。この失敗行動。

SurveyQuestion オブジェクトを正しくインスタンス化していますか? コンソールに出力すると null と表示されるのはなぜですか? それは正常な動作ですか?少なくとも、Java のようにオブジェクト参照を出力すると思いますか?

ありがとう

4

1 に答える 1

4

The default toString() method on a domain instance will return a string which looks like class.name: id. As your newly created domain instance doesn't have id set is shows null.

Try overriding toString() in your SurveyQuestion domain:

String toString() {
    return question
}
于 2012-07-29T00:45:44.317 に答える