2011-12-20 12 views
0

再開ボタンをクリックすると、最後に訪問したページに移動します。私はIDをコントローラに渡しています。最後に訪問したページでセッションを再開する

<input type="button" value="Resume" onclick="window.location.href='/wizard/submission/resume/${submission.id}'" /> 

コントローラロジックは

def resume = { 
     def id = params.id 

     def test = (getDomainObjectType() as Class).get(id) 

     session[getSessionObjectName()] = test; 

     LOG.debug("resuming ${test}") 
     redirect(action: "wizard"); 
    } 

し、ウィザードのロジック以下の通りです以下の通りです:(今のところその限り)

nextView = (int) postProcessedValues.next; 
if (nextView == null) { 
       redirect(action: "index"); 
       //nextView = 0; //question is what to do here. Maybe redirect back to the index page instead... 
      } 

ここにロジックを実装するには、私を助けて。あなたはGrailsのウェブフローのサポートを使用して調査することがありますように

+0

他のコードが必要な場合はお知らせください... – Techie

答えて

0

私は、タイプintのページトラッカーを使用して、その値をデータベースに保存し、再開ボタンをクリックすると関連付けられたページを表示することによって、このソリューションを実装しました。

0

は私にサウンド - >http://grails.org/doc/latest/ref/Plug-ins/web%20flow.html

これは継続し、ユーザーが複雑なウィザードや「ステートフルのWebアプリ(である「どこ」を知る簡単な方法を可能にショッピングカートなど)から離れて移動した操作を「再開」することができます。これにより、あなたのアプリは「子のウィザード」に話すことも、Web Flowの用語「サブフロー」に入れることもできます。これらは、キャンセルを選択した場合にメインウィザードの状態に影響を与えない状態で、ユーザーが拡張操作をいくつか実行するようにする場合に便利です。

Isは、ユーザーセッションに多くの状態をプッシュし、できるだけ早く離れさせるために、最小限のスコープを指定する必要があります。しかし、あなたのユーザーのやりとりが複雑で、それらが拡張アクションでどこにあるかに依存する場合は非常に貴重です。

+0

こんにちはTodd、応答ありがとう...私はこれを別の方法で実装しました....各ページに関連付けられたページトラッカーを使用して再開は、ページトラッカーを特定することによってページに移動します。もう一度あなたの答えをありがとう – Techie

関連する問題