You need to sign in to do that
Don't have an account?

複数のVisualforceページの間で情報のやりとりを実装したい
お世話になります。
複数のVisualforceページの間で情報のやりとりを実装したいのですが、
実装するにはどのようにしたら良いのでしょうか。
買い物情報などをやりとりするイメージです。
複数のVisualforceページに同一のコントローラクラスを設定することが
一番良いのでしょうか?
しかしそのような方法だとコントローラのコードが長くなってしまうことが考えられますし、
画面遷移したときにブラウザのURLが変わらないことが気になるのですが・・・。
・複数のVisualforceページに同一のコントローラクラスを設定する
・GETリクエストのパラメータとしてURLに情報を付加する
(買い物情報なので長くなる&個人情報をパラメータに表示したくない)
以上の二つの方法以外で、Visualforceページの間で情報のやりとりを実装できる方法を
ご存知の方がいらっしゃいましたら教えて頂けると幸いです。
宜しくお願い致します。
これで大丈夫かは自信がないのですが一応Cookieで受渡しを行う方法があるかなと思いました。
参考になるかはわかりませんが、以前Cookieの使い方を調べたときにまとめたものです。
SFDC:Cookieの取り扱い方法について
http://tyoshikawa1106.hatenablog.com/entry/2013/06/18/000435
個人的には同一コントローラが一番安全な気がしています。
Taikiさん
ご回答ありがとうございます!!
ブログも拝見致しました。大変勉強になります!!
>他の人に見られて困るような情報はセットしない方がいい気がします。
とブログに書かれていた通り、
Cookieも個人情報を扱うことにはあまり適していないですよね・・・。
ログアウトしたときにCookieを消す、という処理を行えば大丈夫でしょうか・・・。
検討してみます!!ありがとうございます。
>個人的には同一コントローラが一番安全な気がしています。
仰る通りだと思います。
しかし、Taikiさんが下記ブログで書かれていらっしゃった様に、
SFDC:2つのVFページと同一コントローラ
http://tyoshikawa1106.hatenablog.com/entry/2013/05/03/234647
>setRedirect(true)だと値が引き継がれないことを確認できます。
>また、setRedirect(false)で遷移するとURLが変更されません。
値を引き継ぐとURLが変わらず、URLを変更すると値が引き継げないのですよね。
個人的には、F5キーとかを押してブラウザを更新したらページが戻ってしまうサイトは・・・と、
少し疑問に思ってしまったのです。
コントローラで値を引き継ぎつつ、URLを変更させる、
なんてことはできないのでしょうか・・・>_<。
URLが同じだとそういう問題が発生してしまうんですね。
そこはあまり意識していませんでした(^_^;
コントローラで値を引き継ぎつつ、URLを変更させる方法ですが、ちょっと私の方では確認できていません。。
回避策...にはならないかもしれませんが、以前ページを移動するときに警告メッセージを表示するJQueryがあるのを知りました。
今回のような機能で使用できるかは検証できていないのですがこちらでブラウザ更新等するときに警告するのはどうでしょうか。
ページを移動(離脱)するときにjQueryで警告を出す方法
http://www.koikikukan.com/archives/2013/03/11-005555.php
一応上記サイトを参考にVFで動かしてみたサンプルソースがこちらになります。
Apex_IsJQuery_Beforeunload
https://github.com/tyoshikawa1106/Apex_IsJQuery_Beforeunload
画面右下のDownload Zipボタンからソース一式をDownloadできると思います。
※テキストボックスに値を入力した後に別タブで遷移等行うと警告が表示されるように動作する予定です。
Taikiさん
なんらかの回避策を考えた方が良さそうですね。
ありがとうございます。参考にさせて頂きます。
ブログでしたり、サンプルソースでしたり、リソースがたくさんあって素晴らしいですね。
私も見習って精進致します。
もしかするとそんな面倒なことをしなくてもいい方法があるのかもしれないですが、
ちょっと今思いつくのはそれぐらいでした。
少しでもお力になれていれば幸いです(^ ^)