我对 Grails 还是很陌生,我正在开发一个在线调查。我决定使用网络流,但我遇到了很多问题。我正在尝试将调查 ID 从 gsp 页面传递到流控制器。这在任何其他控制器操作上都可以正常工作,但是每当我对流的开始状态的操作执行此操作时,我总是会遇到相同的错误。我已经按照教科书中的教程进行了完全相同的操作,但我的想法已经不多了。
这是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 流程有什么不同的任何想法?