[Seasar-user:16841] Re: [SAStruts] 画面遷移時の受け渡しパラメータについて
Minoru Taki
[E-MAIL ADDRESS DELETED]
2009年 2月 6日 (金) 08:47:12 JST
ひが様
瀧です。
返信ありがとうございます。
> 次のアクションにパラメータを渡したいなら、基本はFORWARD。
> なんで次のアクションでPOSTしたデータが渡るのが不都合なのか
> わかりません。
すみません説明不足でした。
これは設計/開発の進め方にも問題があるかもしれませんが、
JSP(A),FORM(A),ACTION(A)はAさんが担当
JSP(B),FORM(B),ACTION(B)はBさんが担当
たまたま、両者が意識せずFORM(A),FORM(B)に
同一のプロパティ名(同音異義語)で設計してしまうと
フォワードの場合は、意図しない値がFORM(B)に入ってしまうことになる
ので都合が悪いのです。(同じ意味であれば良いですが)
事前に両者間で調整しユニークな名前で設計すべきかもしれませんが、
現実は多数の設計/開発者が同時進行でやっていくため、なかなか調整が難しいです。
この問題が発覚するのは画面遷移の結合テストのフェーズになってからで、
ちょっと手戻りが発生してしまいます。
リダイレクトだと余計は値は飛んでいかないのでいいのですが、
その分、渡したいパラメータも渡せないというジレンマが発生します。
QueryStringもurlPatternも本質的には同じと考えています。
METHOD=GETを許してしまうと、ブラウザのURLを直タタキされるので、
なるべくデータのキーは見せたくないのです。
せっかくSeasarなので、interceptorでうまく仲介できないかと考えたりするのですが。
やっぱりセッションで渡して、ライフサイクルをしっかり管理するのが
筋かもしれませんね。
----- Original Message -----
From: "Yasuo Higa" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Thursday, February 05, 2009 7:48 PM
Subject: [Seasar-user:16836] Re: [SAStruts] 画面遷移時の受け渡しパラメータについて
> ひがです。
>
>> 瀧と申します。
>>
>> お世話になります。
>>
>> SAStrutsでの画面遷移についてご相談したいことがあります。
>>
> 次のアクションにパラメータを渡したいなら、基本はFORWARD。
> なんで次のアクションでPOSTしたデータが渡るのが不都合なのか
> わかりません。
>
> どうしてもREDIRECTで遷移したい場合は、
> ・URLの一部に埋める(urlPatternを使う)
> ・QueryStringで渡す。
> ・セッションで渡す
> の3パターンから選ぶのが普通です。
>
>> SAStrutsのドキュメントで下記文章があります。
>>
>> >JSPはアクションを経由して表示したほうがいいでしょう。
>> >最初は、アクションで何もすることがなくても、後から必要になった場合に、
>> >URLが変わらないようにするためです。
>> >また、セキュリティ的なチェックを入れたいときも、
>> >アクションを経由するほうが何かと便利です。
>> >
>> >リダイレクトで、他のJSPへ遷移するときも、戻り値を下記のようにして、 アクションを経由するようにします。
>> >
>> > return "/アクション名/メソッド名?redirect=true";
>>
>> これはつまり、アクション連鎖を述べていると思いますが、
>> 画面遷移redirect=trueの場合
>>
>> JSP(A)→ACTION(A)
>> ↓(redirect)
>> JSP(B)←ACTION(B)
>>
>> のようになります。
>> リダイレクトにする理由は、フォワードするとJSP(A)でPOSTしたデータがACTION(B)に渡されるのが
>> 都合が悪いからと認識しています。
>>
>> このリダイレクトでBに行った場合、METHOD="GET"になるため、
>> 画面遷移時に受け渡したいパラメータはURLのQueryStringに繋げるか、
>> セッションに格納などしなければなりません。
>> QueryStringはブラウザのURLに見えてしまい、セキュリティ上問題となる場合があるため、
>> できればデータを格納したくありません。セッション経由は渡すのは楽ですが、消し込み等の考慮が必要です。
>>
>> リダイレクトでなくフォワードであれば、RequestAttributeが使えるのですが、
>> JSP(A)のPOSTパラメータがACTION(B)に渡ってしまいます。
>>
>> 何か良い方法はありませんでしょうか?
>> (皆さんどのように実装しているのでしょうか?半分Strutsの質問になっているかもしれません・・・。)
>>
>> SAStrutsでの画面遷移の受け渡しパラメータの処理方法の定石等があれば、
>> アドバイスを頂きたく、よろしくお願いいたします。
>>
>>
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内