プロが教えるわが家の防犯対策術!

ServletでDBにアップロードするページをつくろうとしてます。そこで、登録フォームの入力チェックをし、エラーがあればエラーページに転送したいのですがうまくいきません。
下記がプログラムの一部なのですが、
------------------
(省略)

name = req.getParameter("NAME");
// 文字列の長さのチェック(入力文字にエラーがあればエラー文字列を追加)
errorMessage += エラーチェックメソッド(name);

// エラーメッセージが設定されていたら
if(!errorMessage.equals("")) {
// request オブジェクトにエラーメッセージを設定
req.setAttribute("error_message", errorMessage);

ServletContext sc = getServletContext();
//エラーページへ転送
RequestDispatcher rd = sc.getRequestDispatcher("エラーページURL");
rd.forward(req,res);
}
}

name = new String(name.getBytes("8859_1"),"SJIS");

//登録処理
(省略)
--------------------
登録フォームで無記入で登録して、エラーを発生させてると下記の様なエラーが発生してうまくエラーページに転送ができません。
どの様にエラーページに転送すればいいのかわからず、困ってます。
どのたか、ご教授頂けないでしょうか?よろしくお願いいたします。

--------------------------
エラー内容
'NAME' には、長さ 0 の文字列を格納できません。

A 回答 (2件)

全然自信はないのですが…。



// エラーメッセージが設定されていたら
if(!errorMessage.equals("")) {
}

このif文の中の処理には入っていますか?
入っていないのなら、エラーチェックメソッドのほうに
問題があるとは考えられませんか?
    • good
    • 0
この回答へのお礼

pinky23さん
アドバイスありがとうございます。
無事、解決することができました。
転送先URLを絶対パスから相対パスにすることが解決できました。
ありがとうございました。

お礼日時:2002/03/05 17:46

もう少し詳しいソースコードがあればわかると思うのですが、


>name = req.getParameter("NAME");
こんなこと聞くのは失礼ですが画面にNAMEフィールドはありますよね?
>errorMessage += エラーチェックメソッド(name);
errorMessage は最初に初期化されていますか?(String errorMessage="";等)
エラーチェックメソッドは正常であれば""を返すのですか?
>rd.forward(req,res);
この後にreturn文は入れておいたほうが無難ですね。

転送処理自体は問題ないと思うので、pinky23さんと同じ意見で
エラーチェックメソッドの方に問題があるように思えます。
    • good
    • 0
この回答へのお礼

bo-kenさん
アドバイスありがとうございました。
無事に解決することができました。
転送先URLを絶対パスを相対パスに変更することで、うまくエラーページを表示することができました。

転送方法に、問題ないことが確認できて助かりました。
ありがとうございました。

お礼日時:2002/03/05 17:52

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