我有一个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有一个Action State的例子:
listBooks {
action {
[bookList: Book.list()]
}
on("success").to "showCatalogue"
on(Exception).to "handleError"
}
如果你有一个序列化的域类,那么效果很好,我没有。
答案 0 :(得分:-2)
最佳答案是不使用Web流,因为序列化问题。我阅读了许多其他帖子,这些帖子在一种或另一种形式的序列化方面存在同样的问题。我正在使用条带电子商务库并将条带类传递到Webflow的几乎每个视图中。我尝试了'逐出'的建议,但是当我解决了一个问题时,另一个问题会由于第三方条纹罐而突然出现。
Stripe很棒,在webflow中使用它不是。避免它。