1

我有一个要在其中渲染模型的 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"
}

如果你有一个序列化的域类,效果很好,而我没有。

4

1 回答 1

-2

由于序列化问题,最好的答案是不使用 Web 流。我阅读了许多其他与以一种或另一种形式进行序列化有相同问题的帖子。我正在使用条带电子商务库并将条带类传递到几乎每个 webflow 视图中。我尝试了“驱逐”建议,但是一旦我解决了一个问题,由于第三方条纹罐,另一个问题就会出现。

Stripe 很棒,但在 webflow 中使用它却不是。躲开它。

于 2013-10-18T00:48:33.393 回答