2012-03-14 7 views
0

私はほとんどすべてのページからログインできるWebサイトを開発しています。ログインアクションはすべてのページで同じですが、常にアクションが開始されたページに戻る必要があります。私の考えは、同じSpring Controller(すべてのログイン要求を再利用可能にする)ですべてのログイン要求を管理し、それを呼び出したページに依存してそれに転送します。異なるビューに再利用できる1つのSpringコントローラ

私はそれが可能かどうか、または各コントローラで同じアクションを「コピー」せずに自分の要件を達成する別の方法があるかどうかわかりません。

答えて

1

各ページについて、リターンページURLを含むようにログインリンクURLを生成します。その後、ログインコントローラは、ログインが成功した後にリダイレクトする場所を知ります。

MyPage.htmlに例えば、ログイン・リンクは、http://server/login.do?returnURL=MyPage.html

コントローラーはreturnURLに端部でlogin.doとリダイレクトに添付されますされるであろう。

+0

ありがとうございました。異なるコントローラを呼び出す必要がある場合はどうですか?つまり、別のページにリダイレクトして、これらのページに異なるコントローラのデータベース呼び出しが設定されているため、この機能をログインコントローラにコピーしたくないということです。だから私は、それがreturnURLに基​​づいて適切なコントローラに転送を使用して解決することができると思う...私はそれがエレガントな方法であるかどうかわからない... – user1260893

+0

あなたのログインコントローラが成功または失敗後にリダイレクトする場所を決定します。この決定のために、要求されたパラメータを使用します。 'returnURL'はそのような決定をするためのパラメータの1つですが、あなたが選んだ他のパラメータを渡すこともできます。 'returnURL'のようなパラメータは、ログインリンク/ URLを持つページを返すコントローラによって生成されます。 'returnURL'を追加するコードを複製することに懸念があるなら、それを解決する方法はたくさんあります。たとえば、それをいくつかのユーティリティクラスに入れます。 –

関連する問題