- - PR -
サブミットされたクエリ(パラメータ)数を取得する方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-18 11:45
お世話になります。
質問なのですが、フォームのパラメータ数を取得するための何かよい メソッドや方法はありますでしょうか? それらしき、メソッドがなかったので相談いたしました。 ご回答お待ちしております。 [ メッセージ編集済み 編集者: 初心者たろう 編集日時 2007-01-18 12:49 ] | ||||||||
|
投稿日時: 2007-01-18 12:09
サブミットする前に、フォーム内にいくつパラメータが HTML 内に記載されているか、ではなく、サブミットされたクエリのパラメータ数ですよね?
全てのパラメータを取得する API がありますので、その API で取得したパラメータの要素の数を数えれば良いかと思います。 [ メッセージ編集済み 編集者: インギ 編集日時 2007-01-18 12:10 ] | ||||||||
|
投稿日時: 2007-01-18 12:31
返信ありがとうございます。
質問の意味を抽象的で申し訳ないです。 質問内容はインギさんのおっしゃるとおり「サブミットされたクエリのパラメータ」です。 現在開発環境が整ってなく実行することができなのですが、 以下のようにコーディングしてみました。 Enumeration enu = request.getParameterNames(); long cnt = (long)enu.length; のようなイメージでよろしいでしょうか。 | ||||||||
|
投稿日時: 2007-01-18 12:43
はい、直接パラメータ数を取得する API はなさそうなのでそんな「イメージ」になります。
Enumeration から直接長さは取得できない点と、敢えて long にキャストする必要がなさそうなのが気になりますが。 >質問内容はインギさんのおっしゃるとおり「サブミットされたクエリのパラメータ」です。 なるほど、するとスレッドのタイトルも変えてはいかがでしょうか?同じ問題にぶつかった人が後々参考にしやすくなりますよ。 [ メッセージ編集済み 編集者: インギ 編集日時 2007-01-18 12:44 ] | ||||||||
|
投稿日時: 2007-01-18 12:55
ご返信ありがとうございます。タイトルも早速変えました。
>Enumeration から直接長さは取得できない点と、敢えて long にキャストする必要が>なさそうなのが気になりますが。 やりたいと思っていた事がございまして、 Enumeration enu = request.getParameterNames(); for(i=0;i<enu.length;i++){・・・} のenu.lengthに設定しようと思ってたのです。特にキャストする必要なかったみたいですね。 | ||||||||
|
投稿日時: 2007-01-18 14:13
「Enumeration から直接長さは取得できない点」は Enumeration インターフェースに length というフィールドがないことを意味しています。
「敢えて long にキャストする必要がなさそう」というのは long 型ではなく、int 型で良いでしょうという意味です。 #恐らくパラメータの数が 2147483647 個を超えると言うことはないでしょうから まずは「手を動かして」みてください。その方が理解が早まると思います。javac が色々と教えてくれます ![]() [ メッセージ編集済み 編集者: インギ 編集日時 2007-01-18 14:13 ] | ||||||||
|
投稿日時: 2007-01-18 14:34
java.util.Enumerationを見れば分かるとおり、lengthなんてありません。 従って、
キャストの有無にかかわらず、決して動くことはありません(コンパイル、通らないから) じゃあ、どーやって長さ取り出すんだよー。 と思ったら、 javax.servlet.ServletRequestをよく読み、 メソッドが返す戻り値もリンクをたどって、リンク先の内容もよく読んでいけば、解決する糸口を見つけることができるでしょう。 まずは何より、インギさんの言うように、手を動かし、分からない点はリファレンスを読んで勉強してください。 ちなみに上記のAPIリファレンスのリンク先は英語サイトです。探せばどこかに日本語のサイトあります。 #いつもjavadocs.orgで検索してるから、英語なのよー。ごめんねー。 追記: 敬称略してた。ごめんなさい。インギさん。 [ メッセージ編集済み 編集者: かずくん 編集日時 2007-01-18 14:35 ] | ||||||||
|
投稿日時: 2007-01-18 14:57
利用コードがAPIリファレンスを見ても分からないときに、
適当なわかっているキーワードでGoogle検索すると、 それなりのサンプルコードが見れます。 以下はGoogle Code Searchで検索した結果です。 http://www.google.com/codesearch?q=Enumeration+getParameterNames+lang%3Ajava&hl=ja&btnG=%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%A4%9C%E7%B4%A2 Google Code Searchはオープンソースのコードに特化した検索エンジンです。 |
1