0

サーバーを介してフィードされるWebアプリを開発しています。そのインデックスはいくつかのショップの取引を示しており、これらすべての取引とIDがあります。.gspには、次のコードがあります。

<div id="content">
<g:each in='${promos}' var='promo'>
<div id="up_box"></div>
<div class="deal_container">
    <div class="images_container"><img src="${createLink(action:'showImage',controller:'image',id:promo.fotoPrincipal.id)}" width="120" height="105" />

    </div>

    <g:link controller='promotion' action='openPromo' params="[promoid:promo.id]">

   <div class="oferta">${promo.name}</div>
   </g:link>
    <g:link controller='promotion' action='openPromo' params="[promoid:promo.id]">
    <div class="flecha">
     </div>
    </g:link>


</div>

つまり、リンクの1つをクリックすると、次のようなURLが開きます。

app/promotion/openPromo/3

ID「3」の取引がクリックされた場合。「一般的な」取引の詳細ページがあります。そのページを常にロードし、ユーザーがクリックした取引に応じて、その詳細を動的に実行する必要があります。どうやってやるの?

説明がはっきりしているかどうかわかりませんが、わからない場合は質問してください。

ありがとうございました!

4

3 に答える 3

1

どちらのリンクも のopenPromoアクションによって処理され、プロモーションの が としてPromotionController渡されます。idpromoid

次に、適切なプロモーションを、ユーザーに表示してビューに提供する他の関連オファーと共にロードできます。例えば:

class PromotionController {

  def openPromo() {
    Promo promo = Promo.get(params.promoid)

    // Load any other relevant data or offers

   render (view:'openPromo', model:[promo:promo, <any other model data here>]
  }
}

その後、モデル データを で使用できますgsp

于 2012-07-24T07:22:54.543 に答える
0

You can do it adding that general info to a Template and then render it from the Controller like this

// render a template to the response for the specified model
def theShining = new Book(title: 'The Shining', author: 'Stephen King')
render(template: "book", model: [book: theShining])

You´ve got more info about the render in this link from the Grails documentation.

http://grails.org/doc/latest/ref/Controllers/render.html

It´s easy to do it, you can add a createLink like the first ones whith calls to an action who will render that template.

Hope it helps ;) and good luck!

于 2012-07-24T07:14:17.497 に答える
0

同僚に尋ねた後、私はこのようにしました:

def openPromo() {
    Promotion promo = Promotion.get(params.promoid)
    [promo:promo]
}

あなたが言ったことのほとんどはデビッドですが、openPromo私のgspに名前を付けると、レンダリングはありません。

ありがとうございました!

于 2012-07-24T10:37:48.923 に答える