我有一个要在其中渲染模型的 webflow 视图。该模型来自第三方 jar 文件,无法序列化。这是我想做的(下)。这给了我一个关于无法将 LinkedHashMap 传递到模型中的 grails webflow 错误。我以为我可以在渲染模型中传递任何我想要的东西。
basicPlanList {
PlanCollection plans = Plan.all(new HashMap<String, Object>());
render(view: "basicPlanList", model: [plans: plans.data])
on("continue") {
bindData(flow.order, params)
}.to("addOnsList")
}
Plan 和 PlanCollection 来自第三方,未序列化。我尝试设置一个操作来将 Plan 模型加载到流中,但 grails 抱怨序列化错误:
first {
action {
PlanCollection plans = Plan.all(new HashMap<String, Object>());
[plans: plans.data]
}
on("success").to "basicPlanList"
on("error").to "handleError"
}
到目前为止,我的解决方法是在 gsp 中加载模型并绕过 Web 流废话:
<g:each in="${Plan.all(new HashMap<String, Object>()).data}" status="i" var="plan">
它可以工作,但我宁愿将模型传递给 gsp,而不是让 gsp 调用远程第三方服务器来加载数据而不进行任何错误检查/捕获。
grails api 有一个动作状态的例子:
listBooks {
action {
[bookList: Book.list()]
}
on("success").to "showCatalogue"
on(Exception).to "handleError"
}
如果你有一个序列化的域类,效果很好,而我没有。