首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >依赖注入Grails Webflow

依赖注入Grails Webflow
EN

Stack Overflow用户
提问于 2011-09-05 18:04:56
回答 3查看 569关注 0票数 0

可以将Spring bean注入到Grails webflow中吗?我尝试了以下几种方法

代码语言:javascript
复制
class CheckoutController {

    ShoppingService shoppingService

    def checkoutFlow = {
        start {
            action {
                // This attempt to access the service doesn't work
                flow.addresses = shoppingService.getOrder()
            }
        }
    }
}

我可以从常规的控制器操作访问shoppingService,但不能从webflow的操作访问它(参见上文)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-07 00:42:22

起初,我认为你列出的是伪代码,但我用你的例子做了一个示例应用程序,并获得了NPE。我想问题可能出在你的流程结构上。action块应该处于流状态。您的流定义应该类似于:

代码语言:javascript
复制
class CheckoutController {
  ShoppingService shoppingService

  def checkoutFlow = {

     start {
       action {
         flow.addresses = shoppingService.getOrder()
         if(flow.addresses) {
            showForm()
         }
         else {
            showError()
         }
       }
       on("showForm").to "showForm"
       on("showError").to "showError"
     }

     showError {
        ...
     }
     //etc.
  }
}

你绝对可以在你的web流中使用注入的服务。我猜问题出在你的流程结构上。

票数 0
EN

Stack Overflow用户

发布于 2011-12-27 07:33:20

将以下内容添加到您的控制器:

代码语言:javascript
复制
def transient shoppingService 
票数 1
EN

Stack Overflow用户

发布于 2012-12-12 03:53:03

在包含传统操作和Web流的控制器中,webflows存在依赖注入问题。如果先执行传统的操作,它对我来说是有效的。

请参阅:GRAILS-7095 GRAILS-4141

Webflow还打破了混合控制器中defaultAction的概念。我发现第一个webflow会成功,并成为默认操作。

单独使用瞬态可以防止您的服务在流状态之间被序列化。(例如,不必实现serializable)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7306519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档