2009-06-16 19 views
3

有什麼方法可以將模型數據傳遞到視圖狀態?請看下面的例子視圖狀態:Grails web flow

class BookController { 
    def shoppingCartFlow = { 
    showProducts { 
     on("checkout").to "enterPersonalDetails" 
     on("continueShopping").to "displayCatalogue" 
    } 
    } 
} 

如果我想數據模型[products: Product.list()]傳遞給showProducts.gsp,有沒有辦法從視圖狀態存儲在模型中的動作狀態之前做到這一點除了流量範圍?

謝謝, 唐

回答

0

也許我不明白的問題,但你不能做

渲染(觀點: 「展示Products」, 型號:產品:Product.list ()]

控制器內

+0

這不是一個正常的控制器操作,它是一個web-flow狀態。我不確定渲染方法可以像你在視圖狀態下所建議的那樣使用。 – 2009-06-17 12:49:20

0

你可以試試這個(假設你想要去收銀臺):

showProducts { 
     on("checkout"){ 
      // do somethings here too if you like 
      // then pass your data as below: 
      [products: Product.list()] 
     } .to "enterPersonalDetails" 
     on("continueShopping").to "displayCatalogue" 
} 
+0

我想通過數據showProducts.gsp,而不是enterPersonalDetails.gsp – 2009-06-17 18:46:27

+0

我試圖給你一個例子,所以你可以建立在... – tegbains 2009-11-07 23:37:01

5

嗯,它是一個有點,因爲我做了一個流程,你的例子是簡單的(僅僅因爲是一個例子的緣故,我希望)。

你缺少的是流程中的初始操作。請記住,showProducts的「視圖」流動操作只是說明在showProducts gsp POSTS時該怎麼做。它在showProducts.gsp

def ShoppingCartFlow = { 
    initialize { 
     action { // note this is an ACTION flow task 
      // perform some code 
      [ model: modelInstance ] // this model will be used in showProducts.gsp 
     } 
     on ("success").to "showProducts"  
     // it's the above line that sends you to showProducts.gsp 
    } 

    showProducts { 
     // note lack of action{} means this is a VIEW flow task 
     // you'll get here when you click an action button from showProducts.gsp 
     on("checkout").to "enterPersonalDetails" 
     on("continueShopping").to "displayCatalogue" 
    } 

    // etc. (you'll need an enterPersonalDetails task, 
    // displayCatalogue task, and they 
    // should both be ACTION tasks) 
} 

有意義用來發送您應該創建模型展示Products行動?