- - PR -
エラーページへのフォワード
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 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-10-21 20:53
推測ですが・・・
「HIZUKE.equals(null)」でNullPointerExceptionが出てませんか? 正しくは「HIZUKE==null」では? | ||||
|
投稿日時: 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を避けなければいけなくなります。(経験者です・・・・・) | ||||
|
投稿日時: 2003-10-22 11:58
後、ifの中の比較順序もnullチェックを先にしないといけませんね。 | ||||
1
