2011-06-23 5 views
0

ポートレットに複数のJSPページが表示されています。バック・ボタンの後にポートレットが処理に入りません

最初のJSP page Aでは、Page Aの[送信]ボタンをクリックすると、processAction()メソッドが実行され、JSP page Bが表示されます。私はpage Aへ戻るWebブラウザのボタンを使用して、もう一度[送信]ボタンをクリックした場合

は今、 JSP page Bが表示されますが、私はprocessAction()がどんな行動を取らなかった気づきました。 (通常、JSPページの[Submit]ボタンをクリックすると、processAction()が処理を実行する可能性があります)。

誰でもこの問題を解決できますか?私のPorletでは、それはプロセスのアクションに行かなければなりませんが、戻るボタンの後にはありません。

答えて

1

これはデフォルトの動作です。ポータルにはデフォルトで「Multiple Action URL Protection」が有効になっています。ページが読み込まれると、アクションリンクが作成され、そのリンクにはaction IDが含まれます。同じアクションIDを同じセッションで再度使用することはできません。したがって、Back Buttonをクリックすると、履歴キャッシュからページがロードされた場合、フォームには前に使用されたものと同じアクションリンクが含まれます。したがってポータルは、processAction()を呼び出すのではなく、ページをリロードします。 portlet.xmlファイルにポートレットの次の構成を追加することで、これを無効にすることができます。

<init-param> 
    <name>wps.multiple.action.execution</name> 
    <value>true</value> 
</init-param> 
+0

ありがとうございます。私はこれに多くの時間を費やしました。 – rdn

0

コードが表示されず、フォームの応答がキャッシュされているように見えます。 <form>のメソッド属性は何ですか? GET(またはmethod属性なし)を介して送信されたフォームはキャッシュできます。この場合、サーバーもポートレットのprocessAction(...)も呼び出されません。ブラウザはキャッシュからの前の応答を再レンダリングします。

コードを投稿すると、さらに多くのオファーがあるかもしれません...

関連する問題