[Wicket-ja-user 170] Re: Internalエラー時のメッセージの受け取り

Back to archive index

takayuki hayashi tkbyt****@gmail*****
2008年 7月 24日 (木) 20:45:14 JST


林です。
すみません、ソースに記述ミスがありました。FooRequestCycleのコンストラクタをTestRequestCycleと記述してしまってます。。。。

ごめんなさい。

2008/07/24 20:41 takayuki hayashi <tkbyt****@gmail*****>:
> 林です。
>
> Wicketのバージョンは1.3.xということと、
> 独自のInternalErroPageをFooErrorPageとした場合で話を進めさせていただきます。
>
> まず、org.apache.wicket.protocol.http.WebRequestCycleクラスを継承したクラスを作成し、onRuntimeExceptionメソッドをオーバーライドします。
> こんな感じです。
> --------------
> public class FooRequestCycle extends WebRequestCycle{
>
>    public TestRequestCycle(WebApplication application, WebRequest
> request, Response response) {
>        super(application, request, response);
>    }
>
>    @Override
>    public Page onRuntimeException(Page page, RuntimeException e) {
>
>        //第一引数のpageはExceptionが発生したページクラスのインスタンスです。
>        //Exception発生時の状態が保持されているので、必要であればダウンキャストして
>        //フィールドの値を取得したりできます。
>
>        //エラーページのコンストラクタにExceptionを渡す。
>        return new FooErrorPage(e);
>    }
> }
>
> ----------
>
>
> 次にWebApplicationを継承したクラス内にてnewRequestCycleメソッドをオーバーライドします。
> そしてそのメソッド内で上記で作成したFooRequestCycleを返します。
> こんなかんじです。
>
> -----------
> public class FooApplication extends WebApplication{
>
>    @Override
>    public Class getHomePage() {
>        return FooPage.class;
>    }
>
>    @Override
>    public RequestCycle newRequestCycle(Request request, Response response) {
>        return new FooRequestCycle(this,(WebRequest)request,
> (WebResponse)response);
>    }
> }
>
> ----------
> これで一応Errorページへエラー情報を渡すことは可能です。
> ただ、FooRequestCycle#onRuntimeExceptionで渡されるExceptionはInvocationTargetException
> とWicketRuntimeExceptionにラップされているので、instanceof等で実際に発生したExceptionを比較するにはe.getCause().getCause()としないといけないのですが。。(あくまで我流なので、どなたかもっとスマートなやり方を知っている方はいませんか?)
>
>
>
> 2008/07/24 12:26 Hiromichi Kishi <h.kis****@gmail*****>:
>> 岸@Kishiです。
>>
>> 以前、InternalErrorPageの変更の方法を質問しましたところ、
>> WebApplicationで
>>
>> setApplicationSettings().setInternalErrorPage(エラークラス.class);
>>
>> とやれば変更することがわかりました。(その節はありがとうございました。)
>>
>> 今回の質問は、このInternalErrorPageが出る前に見ていたページや発生した例外のメッセージを受け取る方法についてです。
>> InternalErrorPageでエラーについてまとめてログを取りたいと思っているのですが、方法がわかる方がいましたらご教示ください。
>>
>> よろしくお願いします。
>>
>> _______________________________________________
>> Wicket-ja-user mailing list
>> Wicke****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
>>
>




Wicket-ja-user メーリングリストの案内
Back to archive index