2009-06-26 1 views
4

Struts 1を使用するJava Webサイトを継承しました。現在、途中でbroser backボタンを押すと、「Webページが期限切れです」というエラーが表示されます。Struts 1は、ブラウザのバックボタンでは使いやすいものではありません。

これは私の限られた理解から、Strutsの設計上の欠陥であると思われます。すべてのページはフォームです。どうにかしてこの問題を回避するか、唯一の方法は別のMVCフレームワーク(struts2、springMVC)に移行しますか?

答えて

1

私はそれを行うストラットに固有の何もないと思います。以前の開発者が何らかのウィザードを作成しようとしたようです。適切な方法は、セッション中に保留中の結果をウィザードに保存し、すべてのフォーム提出後に完全なリダイレクトを行うことです。

+0

はいウィザードのような一連のページ1-> 2-> 3-> 4-> 5-> 6 ただし、ページ2はフォーム1のデータに依存します。 「aすべてのフォーム提出後に完全リダイレクト '? – Amoeba

+0

ほとんどのMVCフレームワークでは、任意のアクションの結果として、別のアクションに転送するか、リダイレクトを行うことができます。リダイレクトとは、サーバーがブラウザーに物理的に別のページに移動するように指示することを意味します。これは一般にPOST-REDIRECT-GETパターン(http://en.wikipedia.org/wiki/Post/Redirect/Get)として知られています。 これについての詳細はこちらを参照してください:http://stackoverflow.com/questions/614516/why-use-redirecttrue-in-struts-1-forward 私はいくつかのことを明確にするのに役立つと思います。 – blockhead

8

これはStrutsの問題ではありません。明らかに、これを構築した人はPost/Redirect/Getパターンを信じておらず、代わりにフォームの提出に応じて直接ページを提供しています。

あなたの行動を前方にredirect="true"を適用することによって、この動作を変更することができます

<action ... > 
    <forward name="success" 
     contextRelative="true" 
     path="/moduleB/index.do" 
     redirect="true"/> 
</action> 

は、より多くの情報のためStruts user guideを参照してください。

関連する問題