3

モデル データをビュー ステートに渡す方法はありますか? 次のビュー ステートの例を考えてみましょう。

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

データ モデルを showProducts.gsp に渡したい場合[products: Product.list()]、モデルをフロー スコープに格納するアクション ステートをビュー ステートの前に置く以外にこれを行う方法はありますか?

ありがとう、ドン

4

3 に答える 3

5

うーん、私がフローを行ってから少し経ちましたが、あなたの例は単純です(例のためだけに、私は願っています)。

不足しているのは、フローの最初のアクションです。showProductsとしての「表示」フローアクションは、showProductsgspPOSTSのときに何をすべきかを示しているだけであることに注意してください。showProducts.gspで使用するモデルを作成する必要があるshowProductsに送信したアクションです。

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)
}

わかる?

于 2009-06-18T01:10:43.377 に答える
0

質問の意味が分からないかもしれませんが教えてください

render (view:"showProducts", モデル:[製品: Product.list()]

あなたのコントローラーの中に?

于 2009-06-17T04:14:25.370 に答える
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"
}
于 2009-06-17T18:14:00.433 に答える