プロが教える店舗&オフィスのセキュリティ対策術

今下記の様な画面(処理)を作成しているのですが、
どうしても分からない点が何点かあります。。

【入力画面へのリンク】⇒
【初期値で使用する値の取得Actionクラス】⇒【入力画面】⇒【確認画面】⇒【完了画面】


(1)入力画面で入力した値を保持したいため入力画面でのstruts-configの設定はscope="session"と指定しました。
【入力画面】⇒【確認画面】
確認画面での表示ではrequestからの表示としたいため、struts-configの設定はscope="request"と指定した。

この場合、【入力画面へのリンク】を押した際にjavax.servlet.jsp.JspExceptionとなってしまう。
しかし、【入力画面】⇒【確認画面】でのscopeをscope="session"としてやるとうまくいく。
なぜ前者がうまくいかないのかの理由がまず分かりません、、

(2)【確認画面】から【入力画面】のURL(~.do)とURLを直打ちした場合の挙動がどのような
仕組みなのか分からない、、
実際に試したがキャッシュを読み込んでる??用にしか見えなかった。
【入力画面】のexecute()は走らないのか?!


主に上記二点がよく分からずに悩んでおります。
(1)に関しては【入力画面】⇒【確認画面】でscope="session"でもいいのですが(特にrequestする理由はないので)、
ただなぜstruts-configでsession⇒requestとするとエラーになるのか?ということが知りたく。。

イメージ)
これだと上手くいかない、、Confirmのscopeをsessionに変えると上手くいく、、、なぜ?
<action path="/~Regist"
type="~RegistAction"
validate="false" scope="session"
name="~">
<forward name="success" path="~.jsp" />
</action>

<action path="/~Confirm"
type="~ConfirmAction"
validate="true" scope="request"
input="~"
name="~">
<forward name="success_confirm" path="~.jsp" />
</action>

<action path="/~Complete"
type="~CompleteAction"
validate="false" scope="request"
name="~">
<forward name="success_complete" path="~.jsp" />
</action>

まだまだ勉強中で変な質問をしているかもしれませんが、
詳しい方ご教授頂けたらと思います、宜しくお願い致します。

A 回答 (1件)

ひとつ確認事項ですが・・・



-----
1)入力画面で入力した値を保持したいため入力画面でのstruts-configの設定はscope="session"と指定しました。
【入力画面】⇒【確認画面】
確認画面での表示ではrequestからの表示としたいため、struts-configの設定はscope="request"と指定した。
-----

情報が保持されているのはsessionで、とりだしたいのはrequestと書かれているようなんですが

取り出したい場所に入れてなければ、エラーは当然でるのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!