• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:結果を別画面(別ウィンドウ)に表示する方法について)

別ウィンドウで結果を表示する方法について

このQ&Aのポイント
  • 現在、springフレームワーク3.0を利用していますが、submit処理をコントローラーで処理した後、結果を別ウィンドウで表示する方法について悩んでいます。
  • 同じフォームオブジェクトを押されたボタンによってそれぞれ別のアクションに渡し、saveの時は画面遷移を、previewの時は別ウィンドウに遷移させたいと思っています。
  • プレゼン層側のjavascriptでwindow.open()を実施後に呼び出すしか方法はないのでしょうか?それともspringフレームワークで簡単に実装できる方法等ありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

ConrollerはViewとModelを結ぶだけなので、View上でどのように表示するかといった情報は持ちません。 > previewは保存結果呼び出し時の画面と同じjspを再利用する事で、リソースの節約が出来る事と、 > 入力途中の状態を維持するので、別ウインドウ表示の方が一般的かなと思っています よく聞く話ですが、上流の作業コストは減りますが、コーディングは専用のロジックを用意するので、あまり節約出来ません。 Web系だと画面の再利用、別(サブ)画面表示というキーワードは要注意です。

kazenami-tomo
質問者

お礼

なるほど、とてもありがたいお言葉です。 そうですね、結局は「楽にできないか?」みたいなもので、根拠も計画も無く勧められるのは問題でした。 リソースにとらわれずにPL層のでPOST呼び出しを工夫して対応したいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 私の知っている限りですがフレームワーク側でそういった制御は出来ないと思います。 仰るとおり、JavaScriptのonload等で処理するのが一般的かなと思います。 それすらを作ってくれる機能がフレームワークにあるとしたらすみません。

kazenami-tomo
質問者

お礼

こんにちは。 回答ありがとうございますm(_ _)m たぶん、spring側のリダイレクトでは無理かなぁとは予想してましたが、やっぱり簡単にはいかなそうですね。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 別ウィンドウで開く

    ちょっとややこしいのですが、 自画面がありそこには無数にボタンがついてます。 それぞれ飛ぶ先は違ったり、次画面と同じURLなのに、別ウィンドウで開きたい場合やリンクで別ウィンドウを開かせたいのですが、どうも思うようにはいきません。 たとえば、下記のようなボタンやリンクがあり 1.別ウィンドウで開かせたい。 <input type="button" value="送信" onClick="javascript:registTypeData('f1','1')"> 2.自画面で遷移したい。 <input type="button" value="応募者一覧" onClick="javascript:send('f1','{URL}')"> 3.別ウィンドウで開かせたい。 <A HREF="javascript:mLink('f2','{ID}')">{ID}</A> 上記のような値がある場合のJavaScriptが下記のようになります。 function newwin(action){ document.forms[0].target = "_blank"; document.forms[0].action = action; document.forms[0].submit(); return false; } function registTypeData(fname,typeId){ document.forms[fname].type.value = typeId; return newwin('{val SEARCH_URL}'); } function send(fname, action){ document.forms[fname].action = action; document.forms[fname].method = "post"; document.forms[fname].submit(); return false; } function memberLink(fname,Id) { document.forms[fname].id.value = Id; return newwin('{val M_URL}'); } 2の画面を開くと、自画面にて遷移しますが、1の画面を開いたあとに2の画面を開くと1の画面も別ウィンドウで表示されます。 また、3の画面を開くと、別画面に表示されるのですが、自画面が真っ白になります。 どなたか分かる方教えてください。

  • 別ウィンドウへのsubmitの挙動がおかしいです

    はじめまして。 ページ内の押下したボタン/リンクに応じて、それぞれ別の新しいウィンドウにフォームの値を渡して処理を行うプログラムを作成しています。 リンク1押下→ウィンドウAを開く→アドレス1に遷移 リンク2押下→ウィンドウBを開く→アドレス2に遷移 ボタン3押下→自画面でアドレス3に遷移 フォームは共通で、JavaScript内でウィンドウ及びアクションの指定を行っています。 しかし、実際に動かしてみると、以下の問題が起こりました。 ・ウィンドウを開いた後、いつまでも遷移しない(する時もある) ・ウィンドウを開いた後、意図しないアドレスに遷移することがある  具体的には、新規ウィンドウで、現在開いているアドレスへの遷移 ・フォームの値が送信されないことがある(する時もある) いろいろ調べてみたのですが、原因がわかりません。 お力を貸していただけないでしょうか。 文末に抜粋したソースを掲載します。 ブラウザはIE7、関連あるかは分かりませんが、PHPとsmartyを使っています。 宜しくお願いいたします。 【JavaScript部分】 function action1(){ document.form.action = "http://www.yahoo.co.jp" document.form.target = "_self"; document.form.submit(); } function action2(){ window.open("", 'win2', 'width=400, height=300'); document.form.action = "http://www.google.co.jp" document.form.target = "win2"; document.form.submit(); } function action3(){ window.open("", 'win3', 'width=400, height=300'); document.form.action = "http://www.msn.co.jp" document.form.target = "win3"; document.form.submit(); } 【HTML部分】 <form name="form" method="post" action=""> <input type="text" name="text1" value=""> <a href="javascript:action2();">リンク1</a> <a href="javascript:action3();">リンク2</a> <input type="button" value="ボタン3" onClick="action1()"> </form>

  • INPUT上でリターンを押してもsubmitされない方法

    フォームにてキーワードを入力し、検索ボタン押したときに javascriptにて以下の動作をさせたいと思っています。  ・hidden項目に特定値をセットしてsubmitをかける 以下のコードを書いたのですが、INPUT上でリターンを押すと submitされてしまいます。 ボタン以外でリターンを押した場合に何も動作させないようにするにはどのようにすればよいのでしょうか? -------------------------------------------------------------- <SCRIPT language="JavaScript"> <!-- function javasc_name(param){ document.form.PARAM.value = param document.form.submit() } //--> </SCRIPT> <form method="POST" action="cgi-bin/xxx.exe"> <input type="text" name="KEYWORD"> <input type="hidden" name="PARAM"> <input type="button" value="検索" OnClick="javasc_name(10)"> </form> --------------------------------------------------------------

    • ベストアンサー
    • HTML
  • 別フォームの値を取得したい

    カテゴリーが、HTMLなのかASPなのか、判断がつかないので、とりあえず「その他」に投稿します。 説明が難しいので、わかりにくいと思いますが、よろしくお願いします。 (用語の使い方や表現が間違ってたらすみません) 一つの画面にフォームが二つあり、FORM1へsubmitすると、選択したファイルのダウンロードを行い、別ブラウザ上に表示します。画面は遷移しません。 FORM2へsubmitすると、別画面へ遷移して処理を行います。 別画面に遷移後、FORM1のselect部品のoption値を取得したいのですが、どうしたらいいでしょうか? selectでなければ、hidden属性の部品をFORM2内に設定しておいて、FORM2_OnSubmit()内でセットしてやればいいと思うのですが、selectだと配列になりますよね?(Request.Form("SELECT")(i)といった形式) selectのoption数は動的に変わるので、いくつあるかはsubmitするまでわかりません。 コーディングは、こんな感じです。 <script language="JavaScript"> function DLFunc(f){ ・・・(略)・・・ f.target = ""; f.submit(); } </script> <script language="VBScript"> Sub FORM2_OnSubmit() ・・・(いろいろ処理)・・・ End Sub </script> <form name="FORM1" method="POST" action="DL.asp"> <select name="SELECT" size="5"> <option value="1">ファイル1</option> ・・・(option数は動的に変わる)・・・ </select> <input type="button" value="ダウンロード" OnClick="DLFunc(this.form)"> </form> <form name="FORM2" method="POST" action="Next.asp"> <input name="XXX"> ・・・(以下略)・・・ <input type="submit" value="実行"> </form>

  • JSPとサーブレット間での画面遷移でうまく表示できません。

    いつもお世話になっております。。。 eclipse3.4 tomcat6.0 の環境で作業しています。 JSPから受け取ったパラメータをサーブレットで条件分岐して、 条件ごとにdispatch fowardで異なったページに遷移させるページを作りたいのですが、うまくいきません。 送信JSPで、 <form action="受け取りサーブレット名" method="post"> <input type="radio" name="url" value="value1"checked> <input type="radio" name="url" value="value2"> <input type="radio" name="url" value="value3"> <input type="submit" value="jump!"> </form> と書き、受け取りでサーブレットで public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { perform(request, response); }      private void perform(HttpServletRequest request, HttpServletResponse response)         throws ServletException, IOException { response.setContentType("text/plain; charset=Windows-31J"); request.setCharacterEncoding("Windows-31J"); request.getParameter("url"); String i = request.getParameter("url"); if( i.equals("value1")) {           request.getRequestDispatcher("/遷移先1").forward(request,response); }else if(i.equals("value2")) {           request.getRequestDispatcher("/遷移先2").forward(request,response); }else if(i.equals("value3")) {           request.getRequestDispatcher("/遷移先3").forward(request,response); としています。 これでJSPからデバッグを実行すると、変数iにparam"url"でとってきた"value1"が入っているので、getParameterが成功しているのが分かりますが、その後なぜか遷移先に移りません。 おそらくdispaccher fowardがうまくいっていないか、 if文が間違ってるかだと思うのですが、 どなたかご教授くださいm(_ _)m

  • 子ウィンドウの操作

    処理概要:親ウィンドウからボタンクリック時にjavascriptのみで      子ウィンドウを作成し、遷移させた後、子ウィンドウの      フォームをサブミットする。 -------以下ソース-------- var url = "/index.html"; hWin=window.open("",""); window.hWin.location.href=url; setTimeout(a,10000); function a(){ window.hWin.document.form.submit(); // window.hWin.document.form.name.value = "住友"; // window.hWin.document.form.button1.click(); }  * index.html にはformというフォームがあり、nameという   テキストボックスとbutton1 というボタンをフォーム内に   持っているとします。 以上のような簡単なものですが、7行目のsubmitでこけます。 window.hWin.document.formがないようでヌルポになります。 親から子ウィンドウのサブミットをjavascriptだけで制御 できないでしょうか。 また、できればコメントアウトしているところ、 DOM要素を指定して値をテキストボックスに入れたり フォームをボタンによりクリックしてサブミットもしたいです。 ちなみに、setTimeout を利用しているのは、遷移が終わり、子ウィンドウの要素が確実に作成されている状態にするためです。 また、遷移先にSSLを設定している部分と設定していない部分があり、javascriptの途中で"ここに遷移していいですか?"みたいなダイアログが表示されます。"混雑しているページの処理"をインターネットオプションから"有効"にする(ダイアログを表示するではなく)と表示されないのですが、奨励されないので 他にいい方法はないでしょうか。

  • プルダウンメニューのリンクで別ウインドウを開く

    下記のようなプルダウンメニューを作成したのですが、同じウインドウ内でリンクするのではなく別ウインドウで開くようにするにはどこを変更すればよいのでしょうか? head内>>>>>>>>>>>>> <script language="JavaScript" type="text/JavaScript"> <!-- function gotoURL(formName){ var gotoUrl=document.forms[formName].elements[0].options[document.forms[formName].elements[0].selectedIndex].value document.location.href=gotoUrl } --> </script> body内>>>>>>>>>>>>>> <form name="fm0"> <select name="links"> <option selected><ここから選択してください></option> <option value="aaa.html">あああ</option> <option value="bbb.html">びびび</option> </select> <input name="BUTTON" TYPE=BUTTON onClick="gotoURL('fm0')" VALUE="GO!"></form>

  • formの送信ボタンクリック後、別ウインドウ表示

    お世話になります。 現在下記の指定でPDFを表示しています。 <INPUT type="submit" name="submit" value="送信" onClick="form.action='tcpdf/pdf.php';return true" class="button_order"> これをクリック後、別ウインドウでPDFを表示したいのですが、 onClick="form.action='tcpdf/pdf.php';return true"の部分を onClick="form.action='tcpdf/pdf_sample.php';target='_blank'"とかにしても うまくいきせん。 ボタンはもう一つあるので、 <INPUT type="submit" name="submit" value="戻る" onClick="form.action='201504_1_2.php';return true" class="button_re-selection"> 出来れば、送信ボタンのみの設定を別ウインドウ表示にしたいです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 二つのform分について

    <form action="./test.cgi" method="POST"> <div>テスト:<input type="text" size="70" name="keyword" value=""></div> <input type="submit" value="OK"> </form> <FORM method="post" action="#"> 外側だけですが、遊んでくださいね16進数で!!!! <INPUT tabindex="10" accesskey="x" value="" name=BGC size=7> <INPUT tabindex="20" accesskey="x" onclick="document.bgColor='#' + document.forms[0].BGC.value" onkeypress="document.bgColor='#' + document.forms[0].BGC.value" type=button value="色変更"> </FORM> どちらも一つずつだと正常に動作します。 何か同じものが二つあるのでしょうか 何かが重複しているので 最初のformは動くけど、 2番目のformが動かないのでしょうね。 どうすれば二つとも動くでしょうか。 よろしくお願いいたします。

  • formでPOSTするのと同じ動作をボタンとjavascriptで実現したいのですが

    <form name="myFORM" method="POST" action="xxx.php"> <input type="text" name="NAME"> <input type="submit" value="送信"> </form> 上記と同じ動作を <button onclick="fpost('tanaka','POST','xxx.php')">送信</button> とjavascriptで実現したいのですが可能でしょうか? 可能でしたらどのようなスクリプトになりますでしょうか? document.myFORM.submit();とかではなく、formタグを全く使わずPOSTしページ遷移したいのですが。 XMLHttpRequestとlocation.replace()とかでできるのでしょうか?? すみませんがよろしくお願い致します。