- - PR -
[Struts]アクションリレー(連鎖)でのsaveTokenについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-01-29 17:37
■struts-config.xml
TransactionTokenを有効にしてあるjsp画面から、上記の/registProductをsubmitし、処理が正常に行われた("success"が返ってくる)場合。 アクションのリレーにより、product.jsp画面を表示させたいのですが、tokenエラーにかかってしまいます。 RegistProductActionのはじめでTokenチェックOK、最後にsaveTokenも行っています。 ちなみに、DisplayProductActionのはじめでデバッグのブレークポイントを設定しても処理がそこまでいっていないようです。(Eclipseを使っています) なぜTokenエラーになるのかが理解できません。 稚拙な説明で申し訳ありませんが、どなたかご教授して頂けないでしょうか。 もし情報が足りないようでしたらご指摘ください。よろしくお願い致します。 | ||||
|
投稿日時: 2009-01-29 18:50
saveTokenを呼んだタイミングでTokenが発行され、Tokenはページの隠しフィールド(Hidden)とSessionに格納されます。
次回、ポストされた時に、isTokenValidによって、HiddenのTokenとSessionのTokenを比較することで、チェックを行っています。 アクションリレーをすると、隠しフィールドのTokenがクライアントに保存されない為、displayProductアクションのisTokenValidでは、登録ページに保存されていた古いTokenと、RegistProductActionのsaveTokenで新たに発行されたTokenが比較されるため、検証エラーになっていると思われます。 | ||||
|
投稿日時: 2009-02-03 16:37
お返事が大変遅くなりました。申し訳ありません。
tokenのしくみがわかっていなかったので勉強になりました、ありがとうございます。 すると、リレーによって実行されるアクションは、tokenが渡らずチェックにひっかかってしまいますね。。 結局、リレーで実行されるアクションにおいてtokenチェックをしないことで解決しました(tokenチェックをしなきゃいけないアクションではなかったので)。 burton999さん、どうもありがとうございました! |
1