[英]dependency inject Grails Webflow
是否可以將Spring bean注入Grails webflow? 我嘗試了以下內容
class CheckoutController {
ShoppingService shoppingService
def checkoutFlow = {
start {
action {
// This attempt to access the service doesn't work
flow.addresses = shoppingService.getOrder()
}
}
}
}
我可以從常規控制器操作訪問shoppingService
,但我無法通過Webflow的操作訪問它(參見上文)。
在控制器中包含傳統操作和Web流的Webflow的依賴注入存在問題。 如果首先執行傳統操作,它對我有用。
Webflow還打破了混合控制器中defaultAction的概念。 我發現第一個webflow獲勝並成為默認操作。
單獨使用瞬態可以使您的服務在流狀態之間進行序列化。 (例如,不必實現可序列化)
將以下內容添加到您的控制器:
def transient shoppingService
起初我認為你列出的是偽代碼,但我用你的例子制作了一個示例應用程序並獲得了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流中使用注入的服務。 我猜測問題在於你的流程結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.