• ベストアンサー

JSPから値を送ったときのServletでの受け取り方について

JSPから<form>で値を送って、それをServletでgetParameterで受け取る処理を しているのですが、 JSPから送る値がいくつあるかわからない場合、Servlet側ではどのように 受け取る方法があるでしょうか? 例えば、 <form action="<%= response.encodeURL("/mimi/abc") %>" method="post"> <% for(int i=0;i<attr.size();i++) { //attr.size()にはいくつ入ってるか不明として String strNameAtr = (String)attr.elementAt(i) ; %> 値 <input type="text" value="<%= strNameAtr %>" name="xmlValueAttr_"+"<%= i %>"><br> <% } %> <input type="submit" value="変更" name="getText"> </form> これを、Servletで受け取る場合、どのように受け取れるでしょうか? xmlValueAttr_iの"i"の部分はいくつまで入っているかわからないので、 普通の処理だと、対応できません。 いい方法があったら、教えてください、お願いします。

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

  • ベストアンサー
  • ssm3u
  • ベストアンサー率52% (19/36)
回答No.1

formから変数 i を type="hidden"で渡すとかでも いいような気もしますが・・・・邪道っぽいので、 個数に関係なく全部受取る方法になりますが Hashtable ht = new Hashtable(); Enumeration enum = request.getParameterNames(); while (enum.hasMoreElements()){ key = (string)enum.nextElement(); value = request.getParameter(key); ht.put(key, value); } こんな感じですか・・・ あとは get()で出していけば良いかと。

bibi5555
質問者

お礼

回答ありがとうございました! Hashtableでformの受け取りが出来るなんて、思いつきませんでした。 Hashtableはあまり使ったことがなかったので、この機会に使い方を 習得します★ ありがとうございました。

その他の回答 (1)

回答No.2

試していないのでできるかどうか自信が無いですが、 フォームの方を <input type="text" value="<%= strNameAtr %>" name="xmlValueAttr"><br> のようにして、名前をすべて同じにします。 そうすると受け取るServletで、 String str[] = requesut.getParameterValues("xmlValueAttr") にして受け取ると全部取れるのではないかと。

bibi5555
質問者

お礼

request.getParameterValuesなんて便利なものがあったんですね! さっそく試してみましたが、私の受け取り方がうまくできなくて、まだ 完成していませんが。。 回答ありがとうございました。

関連するQ&A

専門家に質問してみよう