- PR -

エラーページへのフォワード

1
投稿者投稿内容
花瓶夫
ベテラン
会議室デビュー日: 2003/10/01
投稿数: 50
投稿日時: 2003-10-21 20:33
何回か利用させていただいております。MVCモデルで行っているのですが、htmlの入力内容が@すべて空白の時、または、A一部が欠損値で他が空白の時には、エラーページを表示させテーブルに登録しないようにさせたいのですが、空白のまま又は、欠損値のままでテーブル上に登録されてしまいます。if分のところで、戻り値がtrueに返らないのですがどうしてでしょうか?ソースコードのおかしい所がありましたら何卒ご指摘いただけませんでしょうか。宜しくお願いします。


サーブレットの一部抜粋

//beansにhtmlの内容をセット

jugyoinKari.setHizuke(inphizuke);
jugyoinKari.setKari(inpkari);
jugyoinKari.setTeki(inpteki);
//requestスコープでBeansを保存
request.setAttribute("jugyoinKari",jugyoinKari);

//beansの内容がtrueであればエラーページへ
if(jugyoinKari.JugyoinKariC() == true){
RequestDispatcher rd = sc.getRequestDispatcher("/html/JugyoinKariError")
rd.forword(request,response);



Beansの一部抜粋(カプセル化の部分省略)


public boolean JugyoinKariC(){
try{
    //beansにセットした変数の比較で空白であれば、trueを返す。

if (HIZUKE.equals("") || HIZUKE.equals(null) || ID.equals("") || ID.equals(null) || KARI.equals("") || KARI.equals(null){
return true;
}
}
catch(Exception e){
e.printStackTrace();
}
return false;
}




ぽん
大ベテラン
会議室デビュー日: 2003/05/13
投稿数: 157
投稿日時: 2003-10-21 20:53
推測ですが・・・

「HIZUKE.equals(null)」でNullPointerExceptionが出てませんか?
正しくは「HIZUKE==null」では?
begood
ベテラン
会議室デビュー日: 2003/09/12
投稿数: 97
お住まい・勤務地: とうきょー
投稿日時: 2003-10-22 09:59
ためしに、

try{
  
if (HIZUKE.equals("") || HIZUKE.equals(null) || ID.equals("") ||

このtryとifの間にSystem.out.println(HIZUKE)で、実際にHIZUKEがどのような形になっているか見てみては?NullPointerExceptionが出ていないようなので、この式は、HIZUKE.equals("")がtrueという判断がされていて、その後の、評価にいっていないと思われ、このメソッドはtrueを返しているのではと思います。また、returnの一つで前で、コメント文を入れることで、trueがかえっているかどうかも確認できます。

ちなみに、nullと比較するときは、HIZUKE == nullにしてください。でないと、相当苦労するコードを書いて、NullPointerExceptionを避けなければいけなくなります。(経験者です・・・・・)
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2003-10-22 11:58
引用:

ぽんさんの書き込み (2003-10-21 20:53) より:
推測ですが・・・

「HIZUKE.equals(null)」でNullPointerExceptionが出てませんか?
正しくは「HIZUKE==null」では?



後、ifの中の比較順序もnullチェックを先にしないといけませんね。
1

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