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 の文字列を格納できません。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

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


>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

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



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

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

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

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

このQ&Aに関連する人気のQ&A

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

このQ&Aと関連する良く見られている質問

Q&= ~0x0c; &= ~0x03; |=1;

JavaScriptで分からないコードがあるので教えてください。


■変数設定
var hoge = 0;


■変数格納
・キーを押した時の条件分岐
  ~なら hoge |= 1;
  または hoge |= 2;
  または hoge |= 3;
  または hoge |= 8;

・キーを離した時の条件分岐
  ~なら hoge &= ~0x0c;
  または hoge &= ~0x03;


■変数使用
・swithch文の条件分岐に利用
  (hoge&0x03)
  (hoge&0x0c)


■質問
・どういう意味でしょうか?
・文字コード?
・ビット演算?

Aベストアンサー

ビット演算してるわね

x = x + a

x += a
って書くことができるの

つまり
hoge |= 1

hoge = hoge | 1
のことね

~はNOTのこと

0x
はアスキーコードの16進数表記ねきっと

0x0c は改ページを意味していて
0x03 は文章の最後を意味している
と思われるわ
全文がないので推測だけど

QJavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味?

JavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味?


YOUTUBE日本語版
http://jp.youtube.com/
のHTMLソースを見ていたら、



<script type="text/javascript">
    window.google={kHL:"ja"};
</script>


という記述を目にしたのですがこれはどういう意味あいというか目的のものなのでしょうか?


教えていただければ幸いです。

Aベストアンサー

これは、window.googleに'kHL'というキー(値は'ja')を持つ連想配列を
作成しています。

JavaScriptでの連想配列は

var 変数名 = {
キー : '値',
キー : '値',
:,
キー : '値'
};

というような感じで作成します。
キーはダブルクォートまたはシングルクォートで囲まなくても
いいようです。

参考URL:http://javascriptist.net/docs/basic_hash.html,http://www.openspc2.org/JavaScript/kouza2007/array/hash/index.html

QString a = "a"; と String b = new String ("b"); の違い

String a = "a";
String b = new String ("b");

お伺いしたいのですが、
b は String のインスタンスを作ってると思いますが、
a はどんなことをしてるのでしょうか?

Aベストアンサー

お二人の回答を具体的に言うと、こういうことです。
String a1 = "a";
String a2 = "a";
String b1 = new String ("b");
String b2 = new String ("b");

a1のために、aという文字列のインスタンスが作られますが、
a2に代入されるのは、a1に使われたインスタンスが再利用されます。
これは、
if(a1 == a2) System.out.print("a1と同じインスタンス");
の結果でもわかります。

一方、b1とb2は、bという文字列オブジェクトを引数に、新しいインスタンスを生成する指示がありますので、b1とb2と、その初期化に使った無名のStringインスタンスの3つがメモリ上に存在することになります。
if(b1 != b2) System.out.print("b1とは違うインスタンス");
の結果でもわかると思います。

したがって、
String b = new String ("b"); というのは、Integerに例えると
Integer i = new Integer(new Integer(1)); という処理を
していることになり、ひとつ無駄なインスタンス生成となります。

お二人の回答を具体的に言うと、こういうことです。
String a1 = "a";
String a2 = "a";
String b1 = new String ("b");
String b2 = new String ("b");

a1のために、aという文字列のインスタンスが作られますが、
a2に代入されるのは、a1に使われたインスタンスが再利用されます。
これは、
if(a1 == a2) System.out.print("a1と同じインスタンス");
の結果でもわかります。

一方、b1とb2は、bという文字列オブジェクトを引数に、新しいインスタンスを生成する指示がありますので、b1とb2と、その...続きを読む

QString s = ?(97);// get 'a'

String s = ?(97);
s.equals("a")にするための?の部分を教えてください。

Aベストアンサー

String s = String.valueOf((char)97);

1.2は確認できませんが、1.3では確認済。
要は数値でもcharにキャストすればOKです。(コードがUNICODEであることに注意)

Q

<input type="hidden" name = "hoge">があったとします。
これを、javascriptを使用し nameで検索します。
”hoge”を検索後、その”hoge”という名前を変更する方法を探しています。 

<input type="hidden" name = "hoge">
       ↓↓↓↓↓
<input type="hidden" name = "fuga"> 

リフレッシュ無しで、上記のようにnameを変える方法が知りたいです。

ご存知の方おりましたら、お手数ですが教えていただけませんでしょうか。
宜しくお願いいたします。

Aベストアンサー

タグが特定出来れば、setAttribute等で属性値を変更出来ます。
setAttribute("name","fuga")


人気Q&Aランキング

おすすめ情報