2011-01-06 9 views
1

私はStrutsでウィザードを作成しています。 それは4つのステップを含んでいます。 各ステップのために私は別のActionClassが言うている: -Strutsのウィザードフォーム

  • Step1Action.java
  • Step2Action.java
  • Step3Action.java
  • Step4Action.java

と各クラスにあります2メソッド入力()およびプロセス()。 (検証がOKである場合)

  • プロセス()メソッドは、入力モードでページをれる示すこと
  • 送信されたデータを処理するために使用されるための入力()方法は

    • 私はセッションの最後のステップまですべてのデータを運んでいます。

      <action name="step1" class="com.mycomp.myapp.action.Step1Action1" method="input">      
           <result name="success" type="redirectAction">step2</result> 
           <result name="input">/view/step1.jsp</result>  
          </action> 
      
          <action name="step2" class="com.mycomp.myapp.action.Step1Action2" method="input">      
           <result name="success" type="redirectAction">step3</result> 
           <result name="input">/view/step2.jsp</result>  
          </action> 
      

      しかし、私は間違っているつもりだと思う - :などstruts.xmlで最後のステップでデータベースに

      Similaly 4アクションタグをそれらのすべてを保存します。私に教えてくださいこのケースをどうすれば処理できますか?

    +0

    の詳細が間違っている何ですか?そして、なぜ適切なアクションのために文字列を返すのではなく、redirectActionを使用していますか? – fmucar

    +0

    step1がokであればステップ2にリダイレクトしたい –

    +0

    ちょっとした提案... strutsに移動2..it is beautiful ... – shahensha

    答えて

    2

    あなたはここに同じスコープインターセプタ ためのStruts2の中インターセプタがすでに存在しているよりも、機能性のようないくつかのウィザードを開発しようとしている場合は、同じ http://struts.apache.org/2.0.14/docs/scope-interceptor.html

    +0

    これは本当に良い解決策です。ありがとう –

    +0

    それはあなたを助けた良い:) –

    2

    概念的には何かが間違っています。概念的なエラーはウィザードシナリオの前にあります。

    Struts2アクションは(通常)「入力」メソッドを持つべきではありません。 Struts2アクションはクライアントリクエスト(URL)の代わりにSOMETHING(メソッド)を実行し、新しいVIEW(JSPページ)をクライアントに返すRESULT(文字列)を返します。

    「入力」はケースに対応するRESULTです「入力されたデータが不完全または無効なため、私は(アクション)実行することができません;試してみましょうデータをもう一度入力してください」

    ウィザードを試行する前に、最も単純な使用例(結果メッセージ付きの入力フォーム)を理解しておく必要があります。 hereを参照してください。