• 締切済み

サブウィンドウへのデータの受け渡し方

nukiの回答

  • nuki
  • ベストアンサー率30% (6/20)
回答No.1

(1)可能です。 サブウィンドウを開く際に指定するURIに、一覧画面のformタグのaction属性に指定したものと同じセッションIDを渡すことで実現できます。 jspの場合、action属性にはresponse.encodeURL("サーブレットのURI")を指定していると思いますが、これをそのままサブウィンドウを開く際のURIに指定します。 (例1)HTMLの場合 <a href="<%=response.encodeURL("サーブレットのURI?a=b")%>" target="_blank">サブウィンドウ</a> (例2)JavaScriptの場合 open('<%=response.encodeURL("サーブレットのURI?a=b")%>', '_blank'); (2)サブウィンドウを開く構成のWebアプリケーションは意外とある。 社内向けの業務アプリケーションの場合、この手法をとっているものは、そこそこあると思います。 置き換え元がクライアント/サーバ型である場合は、画面遷移までを同じにする顧客からのリクエストが多いからです。 注意点としては、サブウィンドウから更新処理を行なうパターンがある場合と、親ウィンドウ(ここでは一覧画面)が閉じられた場合の処理ぐらいではないかと思います。

関連するQ&A

  • sessionに付けた情報について

    現在、servletでWEBアプリケーションを作成しているのですが ブラウザで「戻る」をした場合に、sessionに付けて受け渡しした データが残ったまま前画面に戻り、次にアクションを起こした時に 新しいデータではなく、先ほどの古いデータを元にservletが起動して しまいます。  そして、ブラウザの更新ボタンを押すと初めて新しいデータが反映した 画面に遷移するのです。  sessionを使ったWEBプログラムの場合、このようなブラウザの戻るキー による動作不良はついて回るものなのでしょうか?  このバクは私がsessionの使い方の失敗によるものと予想しているのですが 解決策が未だみつかりません。  このような状態になった方の経験から、アドバイスをいたたければ幸いです。 また、sessionについて詳しい情報があるサイトがあれば教えていただきたい。 よろしくお願いします。  

  • Webアプリケーションの開発(Struts)をしています。

    Webアプリケーションの開発(Struts)をしています。 仮に、詳細画面 → 入力画面 → 確認画面という画面構成の場合に、 詳細画面の内容を入力画面に表示する際に、データの引継ぎをする場合は、セッションで持っていれば セッションで保持している値をそのまま次の画面の入力フォームに引き渡すことができます。 なので、入力フォームクラスのデータをセッションに保存して画面で持ちまわすのが普通だと思っていました。 ただ、ある現場ではセッションでのもち回しを禁止し、オブジェクトをファイルにして持ちまわしていました。 なんでもかんでも入れるのはともかく、上記のような画面構成の場合はセッションに入れる以外の方法が思いつきません。 (詳細画面 → 入力画面に遷移する際にDBを再読み込みするという方法もあるのでしょうが。。。) 経験が浅いので、一般的にはどれが正解なのかよく分かりません。 教えてください。

  • Javaサーブレットのスコープ

    データの有効範囲のことです。Servletでは、requestスコープ、sessionスコープ、applicationスコープの3つのスコープがあります。HTTPセッション間でデータを共有したい場合はsessionスコープ、webアプリケーション間でデータを共有したい場合はapplicationスコープというようにデータの有効範囲によりスコープを使い分けます。 という説明がありますが 「sessionスコープ」と「applicationスコープ」 はどちらが広いのでしょうか?

    • ベストアンサー
    • Java
  • Global.aspxでのエラー処理について

    VisualStudio2010でwebページ(C#)を作成しています。 共通エラー処理を実装したいため、Global.aspxにエラー処理を記述しています。 Application_Errorには、以下のようなエラー画面への遷移を Response.Redirect(Server.MapPath("~/error/globalError.html")); のように記述しています。 また、Session_Startにユーザ情報を取得して、Sessionに格納し、 ユーザ情報にエラーがあればエラーを発生させる処理も記述しています。 ここで、Sssion_Startでエラーが発生した際、 Application_Errorでエラー画面への遷移を行い、処理を終了させたいのですが、 Session_Startイベントが再度発生してしまいます。 さらに、SessionIDは変わっていないのに、Sessionに格納したユーザ情報がクリアされています。 これはなぜなのでしょうか? 再度発生させなくする方法はありますか?

  • XSS対策でサニタイジングされたデータの格納

    お世話になります。 WEBアプリケーションでの値の受け渡しについて質問させて頂きます。 前提条件としてjavascript・session・cookieは使えない場合について 入力画面 → 確認画面 → 完了画面 上のように画面遷移する一般的なシステムにおいて 入力画面では「name」というテキストの入力エリアが一つだけあるとした場合に 確認画面では入力された「name」を表示します。 このとき、nameはサニタイジングされた文字を表示し 確認画面→完了画面時にデータベースへデータを追加するために hiddenでnameを持っているとします この場合 <input type="hidden" name="name" value="name"> になると思いますが、このvalueにもサニタイジングされたnameのデータを入れた場合 データベースに追加される値は、入力画面でオペレータが入力した値を変わる可能性があります 入力された値をそのままデータベースに格納する場合には 格納直前はサニタイジングの逆を行うべきなのでしょうか? それともサニタイジングされたデータを格納すべきでしょうか? この話は仕様レベルの話になるかもしれないのですが宜しくお願いいたします

    • 締切済み
    • PHP
  • sessionスコープとapplicationスコープ

    の違いを教えてください。 sessionスコープ: HTTPセッション間でデータを共有したい場合に使用します。これにより、異なるページ間でブラウザを閉じるまで、もしくは一定時間経過するまでデータを共有することができます。 applicationスコープ: webアプリケーション間でデータを共有したい場合に使用します。webアプリケーション間とは、サーブレットコンテナに設定されるwebアプリケーション内のことを言います。 ではよく分からないのでどちらがより広いのかどういう場合にどっちなのかを具体的に教えてください。

    • ベストアンサー
    • Java
  • サブウィンドウへ渡すHidden項目の値

    いつもお世話になっております。 このたび、業務上でらちがあかず、ほとほと困り果てております。 どうか、助けてください>< 以下に詳細を明記しております。 <処理の流れ> StrutsとJSPで構成された親画面で検索を行い、 その検索結果の一覧の行ごとにサブウィンドウ用のボタンが表示されます。 ※一覧の明細フィールドはIteratorで複数行出力されます このボタンを押下することで、 StrutsとJSPで構成されたサブウィンドウにパラメータを渡して サブウィンドウに表示させるという処理になります。 <問題点> サブウィンドウにパラメータを渡す際に、 親画面から選択行のパラメータをJavaScriptで取得します。 この際、複数行から取得するので選択行をインデックスで取得します。 例えばこのようになります。 1.インデックス=idx 2.'sample'は検索処理で値が詰められたHidden項目です。 var sample = document.getElementsByName('sample'); document.getElementById('sample').value = sample[idx].value; としています。 3行のレコードが一覧に表示されているとします。 2行目と3行目はそれぞれ押下した場合、正常にサブウィンドウに表示されます。 しかし、1行目は、最初に押下した場合、正常に表示されますが、 2行目や3行目のあとに押下すると、内容がなぜか直前の押下した 内容にHiddenの内容が置き換えられています。 2行目と3行目はそのようなことがありません。 ※検索直後は1行目の値も正常に設定されていました ByIdのvalueは配列指定できないようなので、 0番目は0番目、1番目は1番目という指定での 解決はできず、困っています。 何が原因となっているのかいまいちわかりません。 納期まで時間がありません。 どなたかピンと来られる方がおられましたら、 ぜひとも教えてください。 何卒宜しくお願い致します。

  • Strutsで画面遷移させない。

    Strutsでwebアプリを作成しているのですが、jsp上のボタンを押下時、sessionに持ってる変数を書き換えたいのですが、画面遷移はさせたくないのです。それって可能ですか? どなたかご教授ください。

    • ベストアンサー
    • Java
  • ruby on railsでの画面間 パラメータ受け渡し方法

    ruby on railsでの画面間のパラメータ受け渡し方法についての 質問です。 入力画面1→入力画面2→確認画面→(登録) のような画面遷移を行う場合、入力画面1、2の内容を 登録処理で使用するにはどのようにしたらよいでしょうか? 1.Sessionに格納する。 2.Hiddenフィールドを使用して、画面間で、受け渡しをする。 3.その他、良い方法があれば教えてください。

  • 現在Visual Web DeveloperにてWEBから個人情報をデ

    現在Visual Web DeveloperにてWEBから個人情報をデータベースに登録できるページを作成しております。 ASP.NET、C#です。 1.利用者がWEB入力フォームから氏名や生年月日を入力し、登録ボタンを押下する。 2.入力値にエラーがあれば、画面は遷移せず、テキストボックスの横にエラー内容を表示。 3.エラーがなければ、Sessionで次のページに入力データを受け渡す。 4.次の画面では入力データを一覧で表示し、ユーザーに確認させる。 5.OKボタンでデータベースに登録。戻るボタンで入力値を保持して前ページに遷移。 というのがメインの流れなのですが、困っていることがあります。 入力値にエラーがあり、2の処理が実行されたあと、適切な値を入力して再度登録ボタンを 押下するともちろん次ページへ遷移します。 その時、戻るボタンを押すと、入力データは保持されたままなのですが、エラーメッセージ も訂正前のが表示された状態になっています。 戻るボタンにはonClick='history.back()'を設定しています。 登録ボタンを押下したとき、遷移前にエラーメッセージを初期化("")しているのですが、 上手くメッセージが消えてくれません。 WEBフォームでの開発は始めてで、セッションの概念が勉強不足です。 何か参考になるページor方法をご存知の方がおられましたら、ご教授ください。 以上、宜しくお願いします。

    • 締切済み
    • CSS