- ブックマークやURL直接入力によるページ呼び出し
- 「送信」ボタン複数回クリックによるフォームデータの再送信
- 「戻る」ボタン操作によるフォームデータの再送信
- ページの「再読み込み」操作によるフォームデータの再送信
- タブブラウザのセッション復元機能によるページ呼び出し
現在作成してアプリケーションでは対策をいろいろと施していますが、そのテストの中で以下のような問題が発生したのでメモっておくことにします。
/hoge/package/app01といったアクションを定義した場合(hogeはアプリケーション)に、通常は@Namespace("/package")で@Action(value="app01")で呼び出すことになります。 これを/hoge/app01とURLで指定した場合に、アクションとしては/hoge/package/app01が呼び出されますが、(期待値としてはエラーになって欲しかった)- アノテーションで定義された@InterceptorRefが処理されない。
- アノテーションで定義された@Resultが反映されない。
ここで、表示要求に対してはCodeBehindによる画面遷移で処理されてしまいます。したがって「error」をActionの戻り値とした場合、app01-error.jspが表示されます。
とりあえず、ユーザ作成のインターセプターを利用しているので、インターセプターから呼び出されているかをアクションのexecute()で判定してエラー処理を行うことにしました。でも、もっとスマートな判定方法はないかな?
0 件のコメント:
コメントを投稿