[Seasar-user:12479] Re: Teeda Ajax ajaxXxxxxメソッドでコンポーネントが登録されていない?

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 1月 11日 (金) 15:57:28 JST


米林です。

> ちなみにPageクラス内のajaxメソッド実行時にセットされるパラメータのValidatorが
> 効かないのは仕様でしょうか?(使い方が間違っている可能性もありますが)
>
> @Required(target="ajaxGetDetail")
> public Integer id;
>
> と指定していましたが、エラーになりませんでした。Ajaxだとエラーメッセージの
> 表示とかが難しいのかもしれませんね。
> JSONで{"allMessages":"hoge error"}とか戻してJSONレンダリングするしか
> ないのでしょうか?

補足ですが、非同期でPageメソッドを呼んでいますので
複数のリクエストを非同期で投げた場合に、メッセージを
表示するのは少し厳しい気がします。
# 非同期でエラーメッセージがパラパラですと
# どの処理でのエラーか分かりづらかったり

よろしくお願いします。

----- Original Message ----- 
From: "kiyoshi hosoda" <[E-MAIL ADDRESS DELETED]>
Sent: Friday, January 11, 2008 3:12 PM

> 細田です。
>
> 原因について報告いたします。
>
> 原因は、コンポーネントがnullだったためではありませんでした。
> メソッドの引数がアンボクシングされた際にnullだったために発生していました。
> 私のTeeda Ajaxの理解不足と確認ミスが原因といえます。
>
> 状況としては、NullPointerExceptionが発生している行:
>
> >  terminologicDictionaryDao.getDetail(id);
>
> このメソッドはプリミティブ型のintを引数に持っていたのですが、idはIntegerでし
た。
> 引数がプリミティブ型であることを忘れていたため、idがnullの場合はgetDetailメ
ソッド
> の内部でNullPointerExceptionが発生し、スタックトレースに出力されるはずと
> 思い込んでいたこと、idに@Requiredアノテーションをつけていたため、必須チェック
> が行われるはずと思い込んでいたことなどが原因です。
>
> お騒がせいたしました。ご協力感謝いたします。
>
> ちなみにPageクラス内のajaxメソッド実行時にセットされるパラメータのValidatorが
> 効かないのは仕様でしょうか?(使い方が間違っている可能性もありますが)
>
> @Required(target="ajaxGetDetail")
> public Integer id;
>
> と指定していましたが、エラーになりませんでした。Ajaxだとエラーメッセージの
> 表示とかが難しいのかもしれませんね。
> JSONで{"allMessages":"hoge error"}とか戻してJSONレンダリングするしか
> ないのでしょうか?

---
米林 正明
[E-MAIL ADDRESS DELETED]



Seasar-user メーリングリストの案内