是否可以将Spring bean注入(inject)Grails Webflow中?我尝试了以下

class CheckoutController {

    ShoppingService shoppingService

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

我可以从常规 Controller 操作中访问shoppingService,但不能从Webflow的操作中访问它(请参见上文)。

最佳答案

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

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流中使用注入(inject)的服务。我猜问题出在您的流程结构中。

关于grails - 依赖注入(inject)Grails Webflow,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7306519/

10-09 05:18