- PR -

request.getParameterValuesで取得した件数が0件の時

1
投稿者投稿内容
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-04-12 09:47
こんにちは。nabeママと言います。初投稿です。Javaのプログラミングを始めて1ヶ月です。わからないことだらけでこれからお世話になると思いますがよろしくお願いします。

さっそくですが、SELECTでOPTIONが1件もなかった場合、
  String List[] = request.getParameterValues("名前")
でのList.lengthはどう判断すればいいでしょうか?


  String List[] = request.getParameterValues("名前")
out.println("<td nowrap colspan=2><select name='名前'>");
if(List.length != 0){
for (int i=0; i<List.length; i++){
String value = new String(List[i]);
out.println("<option>" + value);
}
}
out.println("</select>");

この記述だとソースを表示した場合 
  out.println("<td nowrap colspan=2><select name='名前'>");
で終わっています。

どの記述がおかしいのか教えて下さい。よろしくお願いします。
へげもん
ベテラン
会議室デビュー日: 2002/04/14
投稿数: 87
お住まい・勤務地: 埼玉県
投稿日時: 2003-04-13 08:19
引用:

この記述だとソースを表示した場合 
  out.println("<td nowrap colspan=2><select name='名前'>");
で終わっています。


これは、最後の
out.println("</select>");
が出力されないという意味ですか?
だとすると、何らかの例外が発生して、処理が途中で終わってしまっているためだと思います。
コード:

String List[] = request.getParameterValues("名前") 


おそらく、上記で"名前"が一件もない場合にnullを返しているため、
コード:

if(List.length != 0){ 


ここでnullポインタ例外が上がっているのでしょう。
コード:

if(List != null && List.length != 0){ 


に直してみてください。
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-04-14 09:24
おはようございます。へげもんさんありがとうございます。

応急処置で例外処理を加えて何とか動くようにしていましたが、へげもんさんのおっしゃる通り、nullによる例外処理が発生していました。

へげもんさんに書いていただいたソースで実行しましたら、いろいろなところで
うまく動きました。本当にありがとうございます。とても助かりました。

また、よろしくお願いします。

1

スキルアップ/キャリアアップ(JOB@IT)