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

标签 grails spring-webflow

我有一个要在其中渲染模型的 webflow View 。该模型来自第三方 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 状态的例子:
listBooks {
   action {
      [bookList: Book.list()]
   }
   on("success").to "showCatalogue"
   on(Exception).to "handleError"
}

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

最佳答案

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

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

关于grails webflow - 将非序列化模型传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19322229/

相关文章:

jquery - 无法显示 Bootstrap 弹出框内的范围值更改

java - 如何在 Java/Groovy 中使用 getAt() 函数?

java - Spring 网络流程 : Call bean's method as target action

java - 如何让webflow View 只调用一个 validator

java - Spring Webflow - 无法在模型 bean 上调用注释验证

spring - 如何在异常时设置文字字符串 flowScope 值?

javascript - Grails gsp 等待数据在 div 中显示

grails - 在 Groovy 和 Grails 中使用枚举的正确方法

grails - 如何使用域类字符串名称访问用户定义的Grails项目包名称

spring webflow,评估表达式在转换中被忽略