私はまだ Grails にかなり慣れていないので、オンライン調査を開発しています。Web フローを使用することにしましたが、多くの問題が発生しています。gsp ページからフロー コントローラーに調査 ID を渡そうとしています。これは他のコントローラ アクションでは問題なく動作しますが、フローの開始状態のアクションに対して実行するたびに、常に同じエラーが発生します。これをまったく同じ方法で行う教科書のチュートリアルに従いましたが、アイデアが不足しています。
gsp ページからのリンクは次のとおりです。
<g:link controller="surveyPage" action="beginTest" id="${survey.id}">
${survey.surveyName}
</g:link>
これが開始状態のフローです
def beginTestFlow = {
showSurvey{
def survey = Survey.get(params.id)
on("cancel").to "cancelSurvey"
on("continueSurvey").to "nextQuestion"
}
cancelSurvey { redirect(controller:"surveyPage") }
}
常に例外をスローします。
次の行で引数の型が一致しません
def survey = Survey.get(params.id)
私も試しました:
flow.survey = Survey.get(params.id)
あるいは:
flow.survey = Survey.get(session.survey.id)
いつも同じエラー。また、Survey クラスが Serializable を実装していることを確認しました。同じコードをコピーして、同じコントローラーの別のアクションに貼り付けましたが、問題なく動作します。Web フローとの違いについて何か考えはありますか?