[Seasar-user:12472] Re: Teeda Ajax ajaxXxxxxメソッドでコンポーネントが登録されていない?
kiyoshi hosoda
[E-MAIL ADDRESS DELETED]
2008年 1月 11日 (金) 15:12:58 JST
細田です。
原因について報告いたします。
原因は、コンポーネントが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レンダリングするしか
ないのでしょうか?
Seasar-user メーリングリストの案内