- PR -

equalsでNULL判定すると画面が真っ白になる(jsp)

1
投稿者投稿内容
やまと
常連さん
会議室デビュー日: 2004/02/20
投稿数: 25
投稿日時: 2004-03-11 12:54
いつもお世話になっております。
初心者の質問ですみません。
jspでNULL判定をしてNULLだったらの****の出力をしたいのですが、
NULLの場合、ページは参照できるのですが、画面が真っ白でなにも出力されません。

判定出力用変数定義
<% String entryTrue = "1";
String entryFalse = "0";
String entryNull = null;
String entryTrueComment = "参加";
String entryFalseComment = "不参加";
String entryNullComment = "未登録";
String entryFlg = null;
%>


NULL判定部分
<% if (mnext.getSankaFlg().equals(entryTrue)) {
entryFlg = entryTrueComment;
} else if (mnext.getSankaFlg().equals(entryFalse)) {
entryFlg = entryFalseComment;
} else if (mnext.getSankaFlg().equals(entryNull)) {
entryFlg = entryNullComment;
}
%>

getSankaFlg()は'1'、'2'、NULLしか来ません。

} else if (mnext.getSankaFlg()==NULL) {
entryFlg = entryNullComment;
}

としても駄目でした。
getSankaFlg()がNULL以外の場合はちゃんと判定して任意の文字列を出力しています。

どなたか教えていただけないでしょうか。
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-03-11 13:14
「Null」に対してequals()メソッドを実行すると、エラーになります。
Nullの場合、おそらく最初のif文でで落ちてるんでしょう。

対策としては、
引用:

} else if (mnext.getSankaFlg()==NULL) {
entryFlg = entryNullComment;
}



とした部分を、if文の分岐の先頭に持ってくればいけると思います。
(まず、Nullかどうかの判定をしてから、他の判定をする)
べう
会議室デビュー日: 2004/01/23
投稿数: 17
投稿日時: 2004-03-11 13:28
Cluster さんのいうように、単に null オブジェクトのメソッド equals をコールしようとして例外 NullPointerException が発生しているのですよね。

NULL なる変数など無いというエラーになっていたりして。null ですよね。
1

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