• 締切済み

FormのsubmitでFormの内容がnull

以前次のような質問をさせていただきました。 まだ解決できなく、再び本日発生しましたので、もう一度質問させていただきました。 クライアントからFormのsubmitで送られてくるデータ(Formの中のデータ)が欠落(全てnull)する現象が、ときどき起きています。 原因として考えられることを教えていただきたく存じます。 本日の症状は、 画面Aから画面Bに遷移するためのボタンを押し、submitしましたところ、Formの内容がnullのリクエストとFormの内容が正しくセットされているリクエストが連続してサーバーに届きました。 Formの内容がnullのリクエストはエラーとなり、正しくセットされているリクエストは正常終了しています。 よろしくご教授ください。 余談ですが、以前、知識不足から、ConnectionPoolをオーバーフローさせたことがあり、このコーナーで教えていただき、解決した経験があります。 JAVAもJSPも初心者です。 よろしくご指導のほどお願いします。

みんなの回答

  • hirotn
  • ベストアンサー率59% (147/246)
回答No.1

画面Aのフォームの内容を差し支えない範囲で教えてください。 含めていただきたいのは  ・<form>と指定している属性(ファイル名はマスクして構いません)  ・フォームの送信に使用しているロジック(submit, buttonおよびjavascript) #常にnullと内容ありの2つがリクエストされている、ということはありませんか?

Horirin39
質問者

補足

遅くなりまして申し訳ありません。 JavaScript,Form,ボタンの記述を送ります。 ボタンは、logoutをクリックした時に発生しました。 よろしくお願いします。 // メニュー画面へ遷移 function gotoMenu(value, type){   if (type == 1 && !confirm(formatMsg("MSG_I_MNT_027"))) { document.getElementById("cancel").disabled = false; document.all.topmnu.disabled = false; document.all.logout.disabled = false; return false;   }   document.MNT2000_00Form.actionType.value = "<%=BaseAction.ACTIONTYPE_BACK%>";   document.MNT2000_00Form.backUrl.value = value;   document.MNT2000_00Form.submit(); } <html:form action="/MNT2000_00" method="post" > <html:hidden property="actionType"/> <html:hidden property="mode"/> <html:hidden property="totalRecordCnt"/> <html:hidden property="totalPageCnt"/> <html:hidden property="currentPage"/> <html:hidden property="sortKmk"/> <html:hidden property="sortJun"/> <html:hidden property="changedFlg"/> <html:hidden property="hnkRrkCnt"/> <html:hidden property="scrollLeft"/> <html:hidden property="scrollTop"/> <html:hidden property="bodyLeft"/> <html:hidden property="bodyTop"/> <html:hidden property="detailIdx"/> <html:hidden property="backUrl" value=""/> <div id="gamen" STYLE="width=1238"> <table width="100%" border="0" class="tableTitle"> <tr> <td width="10%">&nbsp;</td> <td width="90%" align="center"> <A href="#" class="linkCommon" target="_self" name="logout"      onClick = "gotoMenu('STR1100_00.do?actionType=logout', 1);return false;"> <IMG src="<%=request.getContextPath()%>/images/logout.jpg" alt=""       border="0"></A>&nbsp;&nbsp;&nbsp; <IMG src="<%=request.getContextPath()%>/images/leftarrow.jpg" alt=""       border="0">&nbsp;&nbsp;&nbsp; <A href="#" class="linkCommon" target="_self" name="topmnu"       onClick="gotoMenu('MNU1000_00.do?menuId=MNU1000');return false;"> <IMG src="<%=request.getContextPath()%>/images/topmenu.jpg" alt=""       border="0"></A>&nbsp;&nbsp;&nbsp; <IMG src="<%=request.getContextPath()%>/images/leftarrow.jpg" alt=""       border="0">&nbsp;&nbsp;&nbsp; <IMG src="<%=request.getContextPath()%>/images/ysnshusei_red.jpg" alt=""       border="0">&nbsp;&nbsp;&nbsp; <IMG src="<%=request.getContextPath()%>/images/ryoarrow.jpg" alt=""       border="0">&nbsp;&nbsp;&nbsp; <A href="#" class="linkCommon" target="_self" onClick="toDetail();return       false;"> <IMG src="<%=request.getContextPath()%>/images/dik_green.jpg"       name="next1" alt="<%=altdik%>" border="0"></A> </td> </tr> </table> </div> </html:form>

関連するQ&A

  • htmlのformのpost submit で送られたデータの寿命は?

    どうもこんばんは。 よろしくお願いします。 formのデータをpostでsubmitした場合、 Request.Formしてデータを取得できる のはどのくらいまででしょうか? 下記の例の場合、(2)のb.aspでボタン押下した 時に、Request.Formでa.htmlのformの値を 取得することは可能なのでしょうか? 例 (1)a.htmlからformでb.aspへ遷移した。 (2)b.aspでもformがあり、  ボタン押下するとb.asp内の  処理が走り、結果を表示する。

  • 2重submit防止手法

    以前、画面内容を登録するためにFormのsubmitをした後、結果の画面が表示される前に、別のボタンを押すと、内容がnullのFormが送られる現象が発生することを教えていただきました。 このための防止策として、JSPの中で、フラグを定義し、falseであればsubmit処理し、trueであればsubmit処理しないようにコントロールするようにしました。 var flug = false; function update() { if (flug) { return; } flug = true; aaForm.type = "update"; document.aaForm.submit(); } function check() { if (flug) { return; } flug = true; aaForm.type = "icheck"; document.aaForm.submit(); } function idou() { aaForm.type = "idou"; document.aaForm.submit(); } ・ ・ <input type="button" name="add" value="登録" onClick="update();"/> <input type="button" name="chk" value="検索" onClick="check();"/> <input type="button" name="ido" value="移動" onClick="idou();"/> ・ ・ JSPを見ますと、同じ画面の時はflugをによる2重submit防止の手法が使われていますが、画面遷移するときは使われていません。画面遷移するときは、この手法でいいのでしょうか、それとも、画面遷移の時も2重submit防止手法を組み込んだほうがいいのでしょうか。 また、2重submitを防止するための他の手法がありましたら教えてください。 どうぞよろしくお願いします。

  • Formのデータが欠落することがある

    クライアントからFormのsubmitで送られてくるデータ(Formの中のデータ)が欠落(全てnull)する現象が、複数のクライアントで1ヶ月に数回起きています。 このカテゴリでの質問ではないかも知れませんが、Java技術者の方の豊富な経験を頼りにお伺いしました。 原因として考えられること、対策(システム的に、nullの場合もう一度Submitしてもらう機能など)を教えていただきたく存じます。 参考になるサイトのご紹介もよろしくお願いします。

  • submitについて

    皆様、はじめまして。 この度javascriptを利用したサイトを作ろうと頑張っておりましたがつまずいたのでご質問させていただきます。 一つのformに二つのsubmitを作成して、javascriptを利用してそれぞれのsubmit先(action)を変えることは可能でしょうか? 尚、送信する際はどちらのsubmitでも全データを送信したいです。 現在の状況は、 JSPからJAVAサーブレットへデータを送ろうとしてます。

  • submitで。。。

    現在、JBuilderを使ってサーブレット+JSPのWEBアプリを作っています。 悩んでいるのは、IEでバックボタンを使って元のページに戻れないようにしたいのですが、 INPUTのTYPEがsubmitの場合、うまくいかないのです。 調べてみると「location.replace()」を使えばよいようなのですが。。。 現在は以下のようにやっています。(TestServletはサーブレット) <input type="submit" action="javascript:location.replace('TestServlet') ~> <input type="text" name="T1"> <input type="submit" name="Submit" value="TEST"> このようにすると、submitボタンを押した場合、リクエストがTestServletのdoPostでなくて、doGetにいってしまうのです。 そうすると「String 値 =request.getParameter("T1");」のようにしてT1の値を取得しようとしても"null"となってしまいます。 なにか他によい方法があるのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • formでテキストとファイルタイプの同時受け渡し

    送信ボタンが押下されたとき、同じ遷移先の画面に「テキスト」「ファイル」タイプのデータを同時に受け渡せないことがわかりました。 (1) <form action="al.jsp" method="POST"> ⇒<input type="radio" name="1" value="2">の受け渡しが可能 (2) <form action="a.jsp" enctype="multipart/form-data" method="POST"> ⇒<input type="file" name="uploadfile" size="50">の受け渡しが可能 送信ボタン押下時に(1)テキスト(2)ファイルデータを同時に受け渡し、 a.jspからrequest.getParameter("1"); で値を取得する方法を教えて頂けないでしょうか。 現在は、 <form action ~> (1)input (2)input </form> の形式になっています。

    • ベストアンサー
    • HTML
  • NULLが返ってこない…。

    原因がわからないため質問をさせて頂きます。 <%-- JSP <input type="text" name="name"> //名前 String name = request.getParameter("name"); Data data = new Data(); //コンストラクタをnew data.setName(name); --%> <%-- class(Bean) private String n = null; public void setName(String name){ if(name != null){ n = name; }else{ n = null; } public String getName(){ if(name != null){ return name; }else{ return name; } } --%> 値をgetParameter()メソッドで取得をして 値をsetName(name);でセットをしています。 セットした側でもし値があるのであれば その値を変数に格納。 もし値がなければnullを変数に格納しています。 しかし System.out.println(data.getName().equals("");//true System.out.println(data.getName().equals(null);//false; となりnullを返してくれません…。 このコードに何を足したらnullを返してくれるのか わかりません。 わかる方がいらっしゃいましたらよろしくお願い致します。

    • ベストアンサー
    • Java
  • リクエストパラメータの値によってJavaScriptでスタイルを変更する場合

    いつも参考にさせて頂いてます。 早速なのですが以下のことが分からず困っています。 親画面から子画面へ遷移する。 その際、チェックボックスの値を複数個POSTで送信する。 子画面で受け取った値をhiddenにそのまま保持し、 孫画面にそのままPOSTで送信する。 JSPを使っているのですがこういったことは可能なのでしょうか? ■親画面 <form method="POST" name="data2" action="child.jsp">   <input type="checkbox" id="check" name="check" value="1>   <input type="checkbox" id="check" name="check" value="2">   <input type="checkbox" id="check" name="check" value="3">   <input type="submit" value="送信"> </form> ■子画面 window.onload = function(){   //画面遷移時にリクエストパラメータをhiddenにセット   document.data.check2.value = <%= request.getParameterValues("check") %>; } ~略~ <form method="POST" name="data2" action="grandchild.jsp">   <input type="hidden" id="check2" name="check2" value="">   <input type="submit" value="送信"> </form> こんな感じで孫画面へそのまま渡せるのかな?と思ったのですが うまく行きませんでした。 アドバイスなどありましたら宜しくお願いします。

  • submitの分岐

    同じform内に、ラジオボタンとサブミットボタンを配置してあります。 ラジオボタンを押された時は自分をsubmit、ボタンが押された時にはsubmitして次の画面へ遷移したいのですが、分岐の方法がわかりません。 <form action="next.htm" method="post"> とやってしまうと、ラジオボタンが押された時にもnext.htmへ遷移してしまいます。 苦慮の結果JavaScriptで、ボタンを押された時にhiddenにフラグをたてておいて、 そのフラグに値が入っていれば <form method="post">、 入っていなければ<form action="next.htm" method="post">、 という分岐処理を書いたのですが、やはり両方next.htm画面へ遷移してしまいます。 お知恵を貸していただけないでしょうか。 ちなみに下記のようなスクリプトを書きました。 ----------------------------------------------- <script language="JavaScript1.2"> <!-- function chk_sub{ document.form.hdnChkFlg.value="1"; window.document.form.submit(); } //--> </script> <if form.hdnChkFlg="1"> <form method="post"> <else> <form action="next.htm" method="post"> <end if> <input type="radio" name="chkSitei" checked onclick="return chk_sub value="1">aaa</input> <input type="hidden" name="hdnChkFlg" value=""> <input type="submit" value="次へ"> </form> 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • formでテキストとファイルタイプの同時受け渡し

    以下の質問の続きなのですが、JAVAカテゴリを勧められましたのでこちらで質問させてください。 http://bekkoame.okwave.jp/question/selectbestanswer?aid=18429563&qid=6529772 使用言語はJSPです。 「送信ボタンが押下されたとき、同じ遷移先の画面に「テキスト」「ファイル」タイプのデータを同時に受け渡せないことがわかりました。 (1) <form action="al.jsp" method="POST"> ⇒<input type="radio" name="1" value="2">の受け渡しが可能 (2) <form action="a.jsp" enctype="multipart/form-data" method="POST"> ⇒<input type="file" name="uploadfile" size="50">の受け渡しが可能 送信ボタン押下時に(1)テキスト(2)ファイルデータを同時に受け渡し、 a.jspからrequest.getParameter("1"); で値を取得する方法を教えて頂けないでしょうか。 現在は、 <form action ~> (1)input (2)input </form> の形式になっています。 」

    • ベストアンサー
    • Java

専門家に質問してみよう