grails webflow - 将非序列化模型传递给视图

时间:2013-10-11 15:48:02

标签: grails spring-webflow

我有一个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"
}

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

1 个答案:

答案 0 :(得分:-2)

最佳答案是不使用Web流,因为序列化问题。我阅读了许多其他帖子,这些帖子在一种或另一种形式的序列化方面存在同样的问题。我正在使用条带电子商务库并将条带类传递到Webflow的几乎每个视图中。我尝试了'逐出'的建议,但是当我解决了一个问题时,另一个问题会由于第三方条纹罐而突然出现。

Stripe很棒,在webflow中使用它不是。避免它。