我对Grails仍然很陌生,并且正在开发一个在线调查。我决定使用网络流量,并且我遇到了很多问题。我试图将调查ID从gsp页面传递给流量控制器。这在任何其他控制器动作上都可以很好地工作,但每当我对流的启动状态执行操作时,我总会得到相同的错误。我在一本教科书中遵循了一个教程,它以相同的方式完成了这个任务,并且我的想法已经耗尽。Grails 2.0.4 webflow“类型不匹配”异常
这里是从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。我已经使用相同的控制器将相同的代码复制并粘贴到不同的操作中,并且工作完美无瑕。任何想法与网络流量有什么不同?
是的,这很好。我很惊讶没有提到我的参考onStart方法。感谢您的帮助! – moultonjr 2012-07-26 11:54:58
它似乎没有在文档中的任何地方提及,我最初通过http://jira.grails.org/browse/GRAILS-3997和阅读Grails源代码的相关部分来了解它。 。 – 2012-07-26 12:12:19