質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

解決済

2回答

44551閲覧

JSPのselectタグのoptionの値を取得したい

Sfidante

総合スコア90

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

0クリップ

投稿2015/04/23 12:24

編集2015/04/23 13:10

こんにちは。
プログラミングの初心者でいまいちわからないところがあるので、
質問をさせていただきました。

何をやりたいかと申しますと、
下記のJSPにおいてselectタグのoptionのvalueの値を
サーブレットのgetParameterで取得したいといったことです。

JSPのselectの部分がこちらです。

lang

1<form name="editPiarInfo" method="POST" action="Serv01?ope=28" id="editPairInfo"> 2 <input type="hidden" name="pair_id" value="<c:out value='${ selectmypair.pair_id }'/>" id="pair_id" /> 3 <input type="hidden" name="single_flg" value="2" id="single_flg" /> 4 <input type="hidden" name="age_type" value="2" id="age_type" /> 5 <input type="hidden" name="age" value="23" id="age" /> 6 <input type="hidden" name="token1time" value="8bcc7d7417da5ea665bf87d9f9f1e8d7a2d51201effefafcd7e7b7bf080c8f7b" /> 7 <input type="hidden" name="buttonType" id="buttonType" value="1" /> 8 <div class="box-photo"> 9 <ul class="photo"> 10 <li> 11 <div><img src="https://graph.facebook.com/<c:out value="${ selectmypair.photo1 }" />/picture?width=200&height=200" width="200" height="200" alt=""></div> 12 <span class="name"><c:out value="${ selectmypair.name1 }" /></span></li> 13 <li> 14 <div><img src="https://graph.facebook.com/<c:out value="${ selectmypair.photo2 }" />/picture?width=200&height=200" width="200" height="200" alt=""></div> 15 <span class="name"><c:out value="${ selectmypair.name2 }" /></span> 16 </li> 17 </ul> 18 <div class="clear"></div> 19 </div> 20 <div class="box-form"> 21 <table> 22 <tr> 23 <th>地域:</th> 24 <td><select name="area_id" id="area_id9" > 25 <option value="1" <c:out value="${ area1 }" /> >北海道</option> 26 <option value="2" <c:out value="${ area2 }" /> >青森県</option> 27 <option value="3" <c:out value="${ area3 }" /> >岩手県</option> 28 <option value="4" <c:out value="${ area4 }" /> >宮城県</option> 29 <option value="5" <c:out value="${ area5 }" /> >秋田県</option> 30 <option value="6" <c:out value="${ area6 }" /> >山形県</option> 31 <option value="7" <c:out value="${ area7 }" /> >福島県</option> 32 <option value="8" <c:out value="${ area8 }" /> >茨城県</option> 33 <option value="9" <c:out value="${ area9 }" /> >栃木県</option> 34 <option value="10" <c:out value="${ area10 }" /> >群馬県</option> 35 <option value="11" <c:out value="${ area11 }" /> >埼玉県</option> 36 <option value="12" <c:out value="${ area12 }" /> >千葉県</option> 37 <option value="13" <c:out value="${ area13 }" /> >東京都</option> 38 <option value="14" <c:out value="${ area14 }" /> >神奈川県</option> 39 <option value="15" <c:out value="${ area15 }" /> >新潟県</option> 40 <option value="16" <c:out value="${ area16 }" /> >富山県</option> 41 <option value="17" <c:out value="${ area17 }" /> >石川県</option> 42 <option value="18" <c:out value="${ area18 }" /> >福井県</option> 43 <option value="19" <c:out value="${ area19 }" /> >山梨県</option> 44 <option value="20" <c:out value="${ area20 }" /> >長野県</option> 45 <option value="21" <c:out value="${ area21 }" /> >岐阜県</option> 46 <option value="22" <c:out value="${ area22 }" /> >静岡県</option> 47 <option value="23" <c:out value="${ area23 }" /> >愛知県</option> 48 <option value="24" <c:out value="${ area24 }" /> >三重県</option> 49 <option value="25" <c:out value="${ area25 }" /> >滋賀県</option> 50 <option value="26" <c:out value="${ area26 }" /> >京都府</option> 51 <option value="27" <c:out value="${ area27 }" /> >大阪府</option> 52 <option value="28" <c:out value="${ area28 }" /> >兵庫県</option> 53 <option value="29" <c:out value="${ area29 }" /> >奈良県</option> 54 <option value="30" <c:out value="${ area30 }" /> >和歌山県</option> 55 <option value="31" <c:out value="${ area31 }" /> >鳥取県</option> 56 <option value="32" <c:out value="${ area32 }" /> >島根県</option> 57 <option value="33" <c:out value="${ area33 }" /> >岡山県</option> 58 <option value="34" <c:out value="${ area34 }" /> >広島県</option> 59 <option value="35" <c:out value="${ area35 }" /> >山口県</option> 60 <option value="36" <c:out value="${ area36 }" /> >徳島県</option> 61 <option value="37" <c:out value="${ area37 }" /> >香川県</option> 62 <option value="38" <c:out value="${ area38 }" /> >愛媛県</option> 63 <option value="39" <c:out value="${ area39 }" /> >高知県</option> 64 <option value="40" <c:out value="${ area40 }" /> >福岡県</option> 65 <option value="41" <c:out value="${ area41 }" /> >佐賀県</option> 66 <option value="42" <c:out value="${ area42 }" /> >長崎県</option> 67 <option value="43" <c:out value="${ area43 }" /> >熊本県</option> 68 <option value="44" <c:out value="${ area44 }" /> >大分県</option> 69 <option value="45" <c:out value="${ area45 }" /> >宮崎県</option> 70 <option value="46" <c:out value="${ area46 }" /> >鹿児島県</option> 71 <option value="47" <c:out value="${ area47 }" /> >沖縄県</option> 72 </select> 73 </td></tr> 74 <tr><th>特徴:</th> 75 <td><input type='hidden' name='treat_flg' value='0' <c:out value="${ treat0 }"/> id='treat_flg0'/> 76 <input type= 'checkbox' name= 'treat_flg1' id='treat_flg1' value= '1' <c:out value="${ treat1 }"/> onclick="document.editPiarInfo.treat_flg2.checked=this.disabled;"/> 77 <label for='treat_flg1'>私たちがおごります!</label> 78 <input type= 'checkbox' name= 'treat_flg2' id='treat_flg2' value= '2' <c:out value="${ treat2 }"/> onclick="document.editPiarInfo.treat_flg1.checked=this.disabled;"/> 79 <label for='treat_flg2'>私たちにおごってください!</label> 80 </td> 81 </tr> 82 <tr class="blank"><th>肉会の予算(1人):</th> 83 <td><select <c:out value="${ selectmypair.budget }" /> name="cost_id"> 84 <option value='1' <c:out value="${ budget1 }"/>>(未選択)</option> 85 <option value='2' <c:out value="${ budget2 }"/>>3,000円</option> 86 <option value='3' <c:out value="${ budget3 }"/>>4,000円</option> 87 <option value='4' <c:out value="${ budget4 }"/>>5,000円</option> 88 <option value='5' <c:out value="${ budget5 }"/>>6,000円</option> 89 <option value='6' <c:out value="${ budget6 }"/>>7,000円</option> 90 <option value='7' <c:out value="${ budget7 }"/>>8,000円</option> 91 <option value='8' <c:out value="${ budget8 }"/>>9,000円</option> 92 <option value='9' <c:out value="${ budget9 }"/>>10,000円</option> 93 <option value='10' <c:out value="${ budget10 }"/>>15,000円</option> 94 <option value='11' <c:out value="${ budget11 }"/>>20,000円</option> 95 <option value='12' <c:out value="${ budget12 }"/>>25,000円</option> 96 <option value='13' <c:out value="${ budget13 }"/>>30,000円</option> 97 <option value='14' <c:out value="${ budget14}"/>>いくらでもOK!</option> 98 </select> 99 </td> 100 </tr> 101 <tr class="blank"><th>肉会のお店:</th> 102 <td><textarea id="introduction" name="introduction" rows="4" style="resize: none; overflow-y: hidden;"><c:out value="${ selectmypair.shop }" /></textarea> 103 <p class="note">※ 肉会が成立したら行きたいお店を入力してください。</p> 104 </td> 105 </tr> 106 </table> 107 <input type="hidden" name="single_flg" value="2" id="single_flg"/> <!-- /box-form --></div> 108 </form>

そして、サーブレットがこちらです。

lang

1 int area000 = Integer.parseInt(request.getParameter("area_id")); 2 System.out.println(area000); 3 dao.connect(); 4 beans = new JavaBeans(); 5 int pairID1 = (int)ses.getAttribute("MY_PAIR_ID"); 6 /*for(int i = 0; i < 48; i++){ 7 int result = Arrays.binarySearch(area1, "selected"); 8 if(result == ) 9 }*/ 10 int treat1 = Integer.parseInt(request.getParameter("treat_flg0")); 11 int budget1 = Integer.parseInt(request.getParameter("cost_id")); 12 String shop1 = request.getParameter("introduction"); 13 if(shop1 == null) 14 shop1 = ""; 15 16 beans.setPair_id(pairID1); 17 //beans.setArea(area1); 18 beans.setTreat(treat1); 19 beans.setBudget(budget1); 20 beans.setShop(shop1); 21 dao.UpdatePair(beans); 22 dao.close(); 23 24 request.getRequestDispatcher("pair.jsp").forward(request, response); 25 break;

また、下記のようなエラーが出てしまいまして、
値がうまく取得できていないことはわかりました。
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at nikukai.Serv01.doGet(Serv01.java:744)

4行目はint area000 = Integer.parseInt(request.getParameter("area_id"));
を指しております。
説明不足で申し訳ありませんが、
ご教授の程よろしく御願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

argius

2015/04/23 12:47

formタグはどうなっていますか?
Sfidante

2015/04/23 13:11

formタグのところを追加させていただきました。 よろしく御願い致します。
guest

回答2

0

lang

1<select name="area_id" id="area_id9" >

nameとidが両方指定されていますね。。。
確か、後に記述されたキーでPOSTされるはずなので「area_id9」でServletに渡っているかと。
「id="area_id9"」を除去してみてください。

投稿2015/04/23 16:19

hyper-drums-ko

総合スコア736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Sfidante

2015/04/24 00:47

ご連絡ありがとうございます。 一応、idについては消して見ましたが どうもうまくいかないようです。 恐らく他の箇所が原因なのかなと思います。
guest

0

ベストアンサー

formのメソッドがPOSTなのに、サーブレットのdoGetが呼ばれているんですか?

Tomcat7で試しましたが、doGetだけしかないサーブレットで試したらエラーになりますね。「HTTPのPOSTメソッドは、このURLではサポートされていません。」


(追記)

なるほど、doPostで受けたのをそのままdoGetに流しているのですね。

あとは、submitボタンがありませんが、submitはJavaScriptとかでやっているのでしょうか?
それと、${ area1 }${ area47 }にはselectedが入るのですか?

とりあえず、これらを無視してsubmitボタンを適当につけて実行してみましたが、area_idの値は取得できました。
おそらく記載している以外のところで何かあるんだと思います。


(追記2 コメント 2015/04/24 10:24 のつづき)

私もEclipse+Tomcat v7.0で確認したので、環境の違いでもなさそうですね...
少なくとも最初はNumberFormatExceptionが発生した時はサーブレットのdoGetまでは到達していますね。

doPostのところに↓のようにprint追加したら何か出力されますか?

lang

1public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 System.out.printf("request: area_id=[%s]%n", request.getParameter("area_id")); 3 doGet(request, response); 4}

投稿2015/04/23 13:30

編集2015/04/24 01:41
argius

総合スコア9390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Sfidante

2015/04/23 14:52

ご連絡ありがとうございます。 その点に関しては、疑問を持ちながら行っていたのですが、 他のサーブレットーJSP間の処理ではうまくいっていたため、 スルーしておりました。 下記に public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }といった記載もあるのですが、 これがあれば大丈夫なのでしょうか?
argius

2015/04/23 15:31

回答に追記しました。
Sfidante

2015/04/24 00:57

ご回答の追記ありがとうございます。 >submitボタンがありませんが、submitはJavaScriptとかでやっているのでしょうか? --そうですね。 <a href="Serv01.do?ope=28" onclick="document.editPiarInfo.submit(); return false;" class="btn-save"> このような形でsubmitしております。 >${ area1 }~${ area47 }にはselectedが入るのですか? --そうですね。 別のサーブレットにおいて、 データベースの値のoptionの値がselectedされています。 現状、<a href="Serv01.do?ope=28" onclick="document.editPiarInfo.submit(); return false;" class="btn-save">でsubmit致しますと。 コンソール上にはselectした値が表示されてはいます。 しかし、他にも値の取得をしたいのですが、 表示されるのがname="area_id"だけの値のようです。 更によくわからないのが、 JSPでdocument.editPiarInfo.submit()したarea_idの値がコンソール上に表示されるのですが、 System.out.println();では未だに表示されていません。 色々とよくわかっていません。 申し訳ございません。
argius

2015/04/24 01:09

System.out.printlnで表示されないのは、エラー(NumberFormatException)が発生していて、処理がそこまで到達していないからだと思います。 「コンソール上に表示される」のコンソールは具体的には何ですか?
Sfidante

2015/04/24 01:24

迅速なご回答ありがとうございます。 System.out.printlnで表示されないのは、 おっしゃる通りそこまで到達してないからですね(汗) 実際、form actionでサーブレットにすら飛んでいないようです。 色々と試してみます。 >「コンソール上に表示される」のコンソールは具体的には何ですか? --eclipseのtomcat v7.0 Serverといったところでしょうか?
argius

2015/04/24 01:42

回答欄に追記しました。
Sfidante

2015/04/28 01:56

返答が遅くなってしまい、 申し訳ございません。 追記して頂いた 無事に意図した値を取得できました。 ありがとうございました。 原因はいまいちわかりませんでした。
argius

2015/04/28 02:08

こちらもNo.9116と同じ原因だったのかも知れませんね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問