0

私はstruts2が初めてです。私は春のアプリケーションでstruts2に取り組んでいます。ユーザー登録機能を開発しました。この登録プロセスには、3 つのステップ (3forms) があります。最初のページにはステップ1にいくつかのフィールドが含まれ、2番目のページにはステップ2に他のフィールドが含まれ、ステップ3には他のフィールドが含まれます.アクションクラスでセッションマップを使用して、すべてのフォームのすべてのフィールド値を配置しました.ステップ3でフォームを送信した後、呼び出しますサービスを休ませて応答を返します。応答が OK の場合は、成功ページのステップ 4 にリダイレクトします。場合によっては、ユーザーがすでに終了している場合、存在するユーザーに応答が返され、step5 ページにリダイレクトされます。このページでは、「申し訳ありませんが、ユーザーは既に存在します」という 1 つのメッセージと、「ホームページ」という 1 つのリンクを使用しました。

<s:a id="next" href="/sample/register/user.action"> Homepage </s:a>step5ページでこのリンクを使用しました。このリンクをクリックすると、ホームページ (つまりステップ 1 ページ) に移動しますが、ユーザーが入力した値は含まれていません。step1、step2、step3 プロセスですべてのフィールド値を維持する必要があります。この問題を解決する方法。

誰でも提案を与えることができます。

4

1 に答える 1

0

セッションマップを使用してユーザーが入力した値を保持している場合は、セッションから値を削除しないか、セッションの有効期限が切れるまで、セッションで使用できるはずです。さらに、新しいリクエストをリダイレクトすると、応答サイクルが開始されますこれは、古い値がすべて失われることを意味します。

あなたの説明から、あなたはウィザードのような機能を作成していると思います。その場合、struts2 はよりエレガントで柔軟なソリューションを提供すると思います。

  1. ScopeInterceptor

これは、Struts のウィザードのような機能に関連するいくつかの単純な問題を解決するために設計されています。

それでも、何かが失敗した場合、またはケースで説明されているようにユーザーがシステムに既に存在する場合に、ユーザーが入力するフォームに値を表示しようとする方法を示す必要があります。この場合、からオブジェクト/データを取得する必要がありますセッション。

于 2012-07-27T08:56:03.077 に答える