1

多くのフォームで Spring Web アプリケーションを実行しています。フォームが正常に保存された場合の一般的な方法は、成功メッセージをセッションに保存してから、成功メッセージが表示される同じリンクまたは新しいリンクにユーザーをリダイレクトすることです。

Spring Web では、これは次のように実行できます。

request.getSession().setAttribute("successMessage", "Form saved successfully");
return "redirect:new_link";

私は自分のアプリケーションをステートレスにしたいと考えていますが、フォーム保存成功メッセージをリダイレクトして表示する慣行に従っています。私はエレガントな解決策を望んでいます。簡単な (ただし、いくつかの理由で洗練されていないと思います) 解決策は、返される URL に次のような文字列としてメッセージを添付し、フロントエンド ページにメッセージを検出して表示させることです。

return "redirect:new_link?successMessage=Form-saved-successfully";

使用するプラットフォームやプログラミング言語に関係なく、あらゆるアイデアやソリューションがあらゆる Web アプリケーションに適用できると思います。

ご意見をお待ちしております。

よろしくお願いします!

4

2 に答える 2

2

Post-Redirect-Getパターンを使用する

Flash 属性を使用して、後続のページに成功/失敗メッセージを表示します。

于 2013-09-01T17:34:54.213 に答える
2

Spring 3.1 以降を使用すると仮定すると、その目的のためにフラッシュ属性を使用できます。タイプRedirectAttributesのメソッド属性を定義します。javadoc には、それらの使用方法のサンプルがあります。

これによってアプリケーションがステートレスになるわけではありませんが、セッションへの直接的な伝達が取り除かれます。(理論的には、デフォルトでまだセッションに保存されているため、独自のFlashMapManagerを実装できます)。

ステートレスなソリューションが必要な場合は、メッセージ (またはメッセージ コード) をリダイレクト URL に入れるか、常に同じメッセージを表示する特定の「Your-Form-Was-Saved」ページにリダイレクトする必要があります。

于 2013-09-01T17:35:09.483 に答える