重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

原因がわからないため質問をさせて頂きます。
<%-- JSP
<input type="text" name="name"> //名前
String name = request.getParameter("name");
Data data = new Data(); //コンストラクタをnew
data.setName(name);
--%>

<%-- class(Bean)
private String n = null;
public void setName(String name){
if(name != null){
n = name;
}else{
n = null;
}
public String getName(){
if(name != null){
return name;
}else{
return name;
}
}

--%>
値をgetParameter()メソッドで取得をして
値をsetName(name);でセットをしています。

セットした側でもし値があるのであれば
その値を変数に格納。
もし値がなければnullを変数に格納しています。

しかし System.out.println(data.getName().equals("");//true
System.out.println(data.getName().equals(null);//false;

となりnullを返してくれません…。

このコードに何を足したらnullを返してくれるのか
わかりません。
わかる方がいらっしゃいましたらよろしくお願い致します。

A 回答 (1件)

><input type="text" name="name"> //名前



formにこのタグがある場合、未入力だったとすると
リクエストには「name=」がのります。
で、これを
>request.getParameter("name");
するとnameはあるが値がブランクなので
""(ブランク文字)が取得されます。
で、""≠nullですので動きは正しいです。

もしブランク文字の場合もnullとしたいのであれば、
>data.setName(name);
この行の前に、下記1行を足してブランク文字の場合、nullとするようなことをしなければなりません。
if ("".equals(name)) name = null;
    • good
    • 0
この回答へのお礼

お返事有難うございます。

<input type="text" name="name">として
入力しないとブランクになるのは初めて聞き、かなり勉強に
なりました。ありがとうございます。

教えて頂いたとおりやってみた所nullを返してくれました。
たまにNullPointerException例外が発生するのがよく
わかりませんが無事解決しました。ありがとうございました。

お礼日時:2007/05/22 21:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!