• ベストアンサー

JSPでのパラメータ引渡し方法

あるa.jspファイル内のフォームからボタンをクリックして b.jspを呼び出します。その際、フォーム上にあるテキストボックス等 の値ではなく、a.jsp内で使用した単なる変数をb.jspに渡したいと おもっております。 <Form action="b.jsp?param=value~ の様な形で、てっきりパラメータが送れるものとばかりおもっていたら、 b.jsp内でgetParameterを行うと何も受け取れませんでした。 通常、この様な事を行う時、どうしますか? よろしくお願いします。

  • Vargas
  • お礼率85% (174/204)
  • Java
  • 回答数6
  • ありがとう数6

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

  • ベストアンサー
  • k_tracker
  • ベストアンサー率48% (12/25)
回答No.5

#3の補足での質問への回答です。(ややこしい) > 最終的な質問なのですが、結局の所、formのactionのURL記述にて、パラメータの受け渡しは出来ないと考えていた方がよろしいのでしょうか? 出来ないみたいですね。 ためしにこんなページを作ってみたんですが、 <html> <form action="test1.html?param1=aaa" method="get"> <input type=submit name=param2 value=bbb> </form> </html> ボタンをクリックすると、遷移先のURLは 「test1.html?param2=bbb」になっていました。 param1=aaaは無視されてますな。 これは私も知りませんでした。

Vargas
質問者

お礼

何度もご回答ありがとうございました。 何はともあれ、actionのURL記述ではパラメータ指定しない様にします。

その他の回答 (5)

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.6

私も#5さんのような実験を行ってみましたが、 やはりだめなようでした。 勉強になりました。 >formの中のオブジェクト(テキストボックス、コンボボックス)以外のある、変数値をパラメータとして引き渡したいと思っております。 こういうときにhiddenを使います。 >それが実現できれば、actionタグのURLにパラメータ値を書く必要はありません。 ここがいまいちわかりません。 書く必要はないですけれども書かなければいけない理由もないような気がします。できたとしても見た目やメンテナンス上あんまりいいもんじゃない気がします。 action属性に直接パラメータを渡しているコードを私は今まで見たことがありません。 まぁみたことがないこととできるできないは別だとは思いますが。 <a href="">ではみたことがありますが。。。 GETは便利なことも多いのですが、パラメータがURLに表示されていますし、たしか容量の制限もあったとおもいます。わざわざGETで送らなければいけない理由があるのでしょうか? 見たことがない →実績がない →あやしいのでやらない という方針でいかがでしょうか。 本当は明確にできないという仕様を提示できればよいのですが。。。

Vargas
質問者

お礼

何度もご回答ありがとうございました。 何はともあれ、actionのURL記述ではパラメータ指定しない様にします。

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.4

formを作っているのであれば、 GETでリクエストを送ればわざわざURLの後ろにパラメータを付けなくてもサーバに送られると思うのですが なぜわざわざactionタグのなかでパラメータを渡そうとするのですか?

Vargas
質問者

補足

よくわかっていないので、変な質問だと思いますが、formの中のオブジェクト(テキストボックス、コンボボックス)以外のある、変数値をパラメータとして引き渡したいと思っております。(質問にも書きましたが。。)それが実現できれば、actionタグのURLにパラメータ値を書く必要はありません。素人考えで、URLのパラメータとして渡そうとした時に受け取れなかった事で出てきた質問です。#3さんの回答の様にHidden属性にして、画面には表示されない形でformの一部として定義すれば、正しくパラメータが受け取れる事は確認しました。んで、#3の補足のところにも記述したのですが、formのactionタグ内のURLにはパラメータ指定をしたとしても、受け渡しは出来ないと考えていた方がいいのですか?

  • k_tracker
  • ベストアンサー率48% (12/25)
回答No.3

#2で基本的に良いと思いますが、 ・変数が多くなると見にくい。 ・URLで変数が見える。 ので、 <form action="b.jsp>   : <input type="hidden" name="param" value="<%変数%>">   : </form> とすれば?

Vargas
質問者

補足

ものの見事にうまくいきました。ありがとうございます。 最終的な質問なのですが、結局の所、formのactionのURL記述にて、パラメータの受け渡しは出来ないと考えていた方がよろしいのでしょうか?

  • tyoufu
  • ベストアンサー率28% (19/67)
回答No.2

b.jsp内で request.getParameter("param") と取得したときに null が代入されますか? もしそのようであれば param が間違っている可能性があります。 ちょっと気になったのが実際に <Form action="b.jsp?param=value"> と記述されているのでしょうか? もし実際にこのように記述されているのでしたら、 action="b.jsp?param=<%= value %>"> と記述すれば a.jsp内で value に値を代入して b.jsp側で request.getParameter("param") とすれば取得出来ると思うのですが。

Vargas
質問者

お礼

ありがとうございました。

Vargas
質問者

補足

ごめんなさい。質問の書き方がまずかったです。 上記の様に設定しております。そして、valueについては a.jsp内で設定されるパターンと、固定的に指定した場合 つまり、param=1等と指定した場合の2通りで試して双方とも失敗します。

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.1

セッションを使って渡すのが一般的なんではないでしょうか?

Vargas
質問者

補足

そうですか。sessionで試してみますが、formで渡せない理由がわかりません。anchorで同じようなパラメータ指定では受け取れます。。。

関連するQ&A

  • JSPでのパラメータ値引き渡し方法

    現在、JSP画面上(a.jsp)にフォーム(テキストボックス)と、リンクラベル(アンカー)があり、 理由があり、テキストボックス内に設定した値(strData)をリンクラベルのリンク先のJSP画面(b.jsp)に 引き渡したいと思っております。現状(抜粋です) 、 <Input Type="text" name="dummy" value=<%=strData %>> <A href='b.jsp?PARAM="<%=strData %>"'>リンク</A> とやったのですが、うまくいきません。(b.jspではデータが空で取得されます。) よくよく考えると、このやり方だと、テキストボックスに値を設定しても strData変数には値が設定されないんですよね。きっと。 と思い、考えをあらため、能動的にテキストボックスの値を取得するメソッドがないかな? とAPIマニュアルを調べたのですが、よくわかりませんでした。 上記の実現方法を教えてください。

    • ベストアンサー
    • Java
  • サーブレットのパラメタ変更

    例えば、 - a.html - <form method="post" action="/Servlet1"> <input type="text" name="animal" size="12"> <input type="submit" value="送信"> </form> というHTML文がありanimalのテキスト内容がcatとしてServlet1へリクエストしたとします。 Servlet1ではgetParameter("animal")でcatを取得できます。そこで次のページをレスポンスするべく、 getServletContext().getRequestDispatcher("Jsp1.jsp").forward( request, response ); という形でJsp1.jspへフォワードします。Jsp1.jspでもrequest.getParameter("animal");とすると catという値が取得できると思うのですが、これをServlet1でanimalがcatならdogというようにパラメータの値を変更することはできますでしょうか? 初歩的な質問かと思いますが、何卒、宜しくお願いいたします。

    • ベストアンサー
    • Java
  • iframeのsrc属性で指定したサーブレットにパラメータを渡す方法

    タブがクリックされたらiframeを使用して動的にタブのコンテンツを表示する画面をJSPで作成しています。 このとき、iframeのsrc属性で指定したサーブレットにパラメータを送りたいと思うのですがどのようにすればよいのかわかりません。 <iframe onload="sendParams()" src="..."></iframe> 次のようにFormを定義して、 <form name="testForm" action="..."> <input type = "hidden" name="A" value="XXX"> </form> onload属性で指定したsendParams()でdocument.testForm.submit()をしてみました。ここで、iframeのsrcとformのactionには同じサーブレットのURLを指定しています。この時、タブをクリックすると、ポップアップで画面が表示されてしまいました。ポップアップではなく、タブの中に表示したいのですが、どのようにすればよいでのでしょうか? URLパラメータとして、パラメータを送ることも考えたのですが、 URLパラメータには変数を指定できるのでしょうか? 例えば、JSP中に<c:set var="A" value="${param.A}" /> という変数設定をしていた場合、Aという変数をURLパラメータ で送れるのでしょうか?送ってみたら、"A"という文字列が 送られていました。 上記の問題のため、GETでもPOSTでも送る方法がわかりません。 どちらでもいいので、わかる方がいたらぜひ教えてください。

    • ベストアンサー
    • Java
  • JSP→JSP フォームチェック

    困っているので助けてください。 まずプログラムの説明をさせてもらいます。 JSPからfromをつかってJSPにフォーム情報を送ります。 プログラムはこんな感じです。 <form action="abcdefg.jsp" method="post"> <input type="hidden" name="abc" value="abc"> <input type="hidden" name="def" value="def"> <input type="checkbox" name="aa" value="aa"> <input type="checkbox" name="bb" value="bb"> <input type="checkbox" name="cc" value="cc"> <input type="submit" value="次へ"> </form> これをabcdefg.jspで受け取る場合 String hidden_abc = request.getParameter("abc"); String hidden_def = request.getParameter("def"); とhiddenは必ず値が入っているのでこれで受け取れるのですが チェックボックスは選択しているかどうかわからないので上の記述では だめなようなのですがどのようなプログラムを書いたらいいのですか? 説明がうまく出来なく申し訳ないです。よろしければ教えてください。

    • ベストアンサー
    • Java
  • JSPからServletへの値の引渡し

    JSPからServletへパラメータを渡そうとしています。 JSP同士のやり取りのようにrequest.getParameter でやろうとするとNullPointerExceptionが出てしまいます。 ひょっとして私って何も分かってないのかも…。 JSPで、 <input type=hidden name="nickname" value="pinky"> として渡すべき値を設定しました。 そして、PostでServletを呼び出します。 呼び出されたServlet側で、この"nickname"を受け取りたいのです。 必要な情報があれば仰って下さい。補足致します。 よろしくお願いします。

    • ベストアンサー
    • Java
  • javascriptからURLパラメータ値を送る

    使用言語はJSPです。 画面上のラジオボタンの値を取得しているjavascriptが以下です。 これでボタンが押下されたとき、この関数を呼び出しラジオボタンのVALUE値をアラートとして表示することはできています。 これをURLパラメータとして、JSPサーバ側に送りたいと思いますが、 NULL値となってしまいます。 取得は、request.getParameter("aaa"); としていますがNULL値です。 JAVASCRIPTからURLパラメータを送付・サーバ側から取得する方法を教えていただけますか。 function check(){ var aaa = document.getElementsByName("ラジオボタンの名前"); for(var i=0;i<arr.length;i++){ if(aaa[i].checked) var param = aaa[i].value; aaa.action = "./bbb.jsp?param="+param; aaa.submit(); return aaa[i].value; } }

  • テキストボックス値をsetPropertyでセット

    HTMLのテキストボックス<input type="text">値を JSPのsetPropertyでセットBeanのフィールドとしてセットし、 Servlet側で取得したいと思っています。 JSPでのsetPropertyの書き方は次のようで、 直接valueに値を書く(またはbeanからとってきた値を書くようですが、 [質問1.]テキストボックスに入力された値を代入することは可能でしょうか? [質問2.]どのように記述すればよろしいのでしょうか。 ---JSP setPropertyの記述 <jsp:setProperty name="オブジェクト変数"             property="プロパティ"             value="プロパティ値"             param="パラメータ" />

  • JSPでリンクを利用してパラメータを次画面に渡す方法について。

    一覧表示されているデータのNOをクリックすると、二つのパラメータでデータベースへアクセスし、該当データの詳細画面に遷移する、というプログラムを作っています。 データベースへアクセスする際に必要なIDは2つで、仮にID_A、ID_Bとします。 リンク部分のソースは --------------------------------------------------------------------- <a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>">番号</a> <input type="hidden" name="ID_B" value="<%= rs.getString("ID_Bcat_id") %>"> --------------------------------------------------------------------- としておりますが、次画面へ遷移すると、ID_Bの値はnullとなってしまうために、正常にデータの取得ができません。 二つのパラメータを使用する場合のパラメータを渡す方法を教えて頂きたいと思います。よろしくお願いします。

    • ベストアンサー
    • Java
  • 【JSPのデータ型の変換エラー??】

    こんばんは! 現在、SQL Serverのテーブルに接続してJSPのテキストボックスをキーに検索結果を次のJSPに表示させるWEBを作成しています。 そこで検索結果を表示させるJSPでnvercharの値'AHFKS23847'をデータ型intに変換できませんでした。と表示されます。 ネットや書籍で調べましたが全くでておらず困っております。 ご教授下さい! String param = request.getParameter("param"); "SELECT * FROM T_Table where Number_Co="+param); として記述しております。 Number_CoはSQL Serverではテキスト型と設定されております。 宜しくお願いいたします!

    • ベストアンサー
    • Java
  • jspでのパラメータでの値渡しについて

    最近、JSPについて勉強していていろいろ作っているのですが、 JSPでサーブレットに値を渡そうとしたのですが、内容がNULLになってしまいます。 HTMLとJSPでは a hrefでのパラメータ渡し方が違うんでしょうか? select.jspからTest.javaへ値を渡したいです。 <a href="/testPrj/Test?myans=ア&toi"><font size="5">ア</font></a> <a href="/testPrj/Test?myans=イ&toi"><font size="5">イ</font></a> <a href="/testPrj/Test?myans=ウ&toi"><font size="5">ウ</font></a> <a href="/testPrj/Test?myans=エ&toi"><font size="5">エ</font></a> とselect.jspでやっており、(変数toiは"問 ○○"みたいな感じです) String myans=(String)req.getParameter("myans"); と サーブレットで受け取ろうとしています。 いろいろとやってみたのですが、サーブレット側で受け取ったmyansを表示させるとnullに なっていました。 よろしくお願いします。

専門家に質問してみよう