-独自の例外ページ

Tapestryではアプリケーション中で例外が発生したまま、トラップされないと、エラー情報を表示するページが出ます。これは、ExceptionDisplayというコンポーネントを用いた、「Exception」という名前のページが表示されます。この名前は予約された名前で、起源はAbstractEngine#activateExceptionPage()に見ることができます。
このエラー情報を見ることができるExceptionページは開発およびテスト時には有効ですが、リリース前には独自の飾ったエラーページにしたいものです。このページに処理が落ちるのはバグなのですが、例外発生時にユーザーにこの画面を見せることはありません。また、場合によってはこのページに処理が落ちたときに特別にログを取ったり、障害情報としてシステム管理者にメール通知したりする要件も考えられます。
独自の例外ページを作成するのは以下の手順で行います。

  1. アプリケーションスペックXML(.applicationファイル)に、name属性が"Exception"であるpageエレメントにより、"Exception"という名前でページを登録する。
  2. Exception.htmlとException.pageと、ページクラスを作るなどして、独自例外ページを用意する。
  3. ページクラスに、setException(Throwable t)を実装するなどして、exceptionプロパティを作る。TapestryはこのプロパティのSetterがあるものとして、例外オブジェクトをセットしにきます。

WEBブラウザのBackボタンを押して戻ったとき、アプリケーションの側で例外が発生してしまったときにはStaleLinkページが表示されます。こちらは、以下のようにカスタマイズします。

  1. 同様に、"StaleLink"という名前でページ作成。
  2. ページを作る。
  3. ページにmessageプロパティを作る。

セッション切れの際はStaleSessionというページがTapestryに用意されています。これは以下のように入れ替えます。

  1. 同様に、"StaleSession"という名前でページ作成。
  2. ページを作る。

ExceptionおよびStaleLink、StaleSessionは、TapestryのJARファイル中のorg.apache.tapestryパッケージに配置されている、Framework.libraryに定義されているページです。ユーザーアプリケーションで同一名を設定すると、Tapestryエンジンはページを探すのに、アプリケーション設定を優先して検索するためにきちんと独自ページのほうが検出されます。