[Seasar-user:10768] Re: [Teeda]エラーページについて

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2007年 9月 28日 (金) 18:43:04 JST


大谷です.

>ひとつだけ注意点はmessageという名前のidは
>ErrorMessageのコンポーネントのマッピングにされてしまうので
>気をつけてください.上記サンプルではmesssageとしています.
>(ドキュメントは書きます・・・すいません)

messsage -> amessage
ですね.
宜しくお願いします.

07/09/28 に Shinpei Ohtani<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 大谷です.
>
> > 【[Seasar-user:8744][Teeda] teedaErrorPage.diconについて】を参考にして
> > error.htmlを作成したのですがエラーメッセージが出力されずに困っています。
> >
> > サンプルとして作成したプログラムでは HogePageのinitializeで例外を発生させて
> > error.htmlを表示させ、その中に発生したメッセージを表示させようとしています。
>
> ちょっと何を期待しているのかが具体的でないので、
> エラーメッセージが表示されていないのか、Exceptionで設定したメッセージが
> 表示されていないのか、どちらなのでしょうか?
>
> Doltengで吐き出したサンプルをベースに話をすれば、
> ErrorPageにExceptionをフィールドとしてもっておけば、そこに例外が設定されるので、
> exception.getMessage()と取得すれば、小林さんが対応してくれた
> SNAPSHOTでは上手くメッセージも取れるはずです.
> (そうじゃない場合は、exception.getCause().getMessage()になります)
>
> たとえば、下記のような感じです.
>
> <form id="errorForm">
> <span id="allMessages"></span>
> <span id="amessage">hogehoge</span>
> <span id="stackTrace" te:escape="false"></span><br/>
> </form>
>
> public class ErrorPage {
>
>         private static final String SERVLET_NAME = "javax.faces.webapp.FacesServlet";
>
>         private FacesContext context;
>
>         private String stackTrace;
>
>         private Exception exception;
>
>         private String amessage;
>
>         public Class prerender() {
>                 stackTrace = buildStackTrace(exception);
>                 amessage = exception.getMessage();
>                 return null;
>         }
> (省略)
>
> ひとつだけ注意点はmessageという名前のidは
> ErrorMessageのコンポーネントのマッピングにされてしまうので
> 気をつけてください.上記サンプルではmesssageとしています.
> (ドキュメントは書きます・・・すいません)
>
> 宜しくお願いします.
>
> 07/09/28 に [E-MAIL ADDRESS DELETED]<[E-MAIL ADDRESS DELETED]>
> さんは書きました:
> > いつもお世話になっております。
> > 丸岡です。
> >
> > 【[Seasar-user:8744][Teeda] teedaErrorPage.diconについて】を参考にして
> > error.htmlを作成したのですがエラーメッセージが出力されずに困っています。
> >
> > サンプルとして作成したプログラムでは HogePageのinitializeで例外を発生させて
> > error.htmlを表示させ、その中に発生したメッセージを表示させようとしています。
> > 以下、作成したファイルです。
> >
> > ・HogePage ─────────────────────────────
> >
> >     public void initialize() throws Exception{
> >       throw new Exception("出力したいメッセージ");
> >  }
> >
> >
> > ・error.html ────────────────────────────
> >
> > <html xmlns:te="http://www.seasar.org/teeda/extension">
> > <head>
> > <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> > <title>エラーページ</title>
> > </head>
> > <body>
> > エラーが発生しました
> > <form id="errorForm">
> > <span id="allMessages"></span>
> > <span id="stackTrace" te:escape="false"></span><br/>
> > </form>
> > </body>
> > </html>
> >
> > ・ErrorPage ────────────────────────────
> >
> > doltengでデフォルトで作成したままの状態
> >
> >
> >
> > ・teedaErrorPage.dicon ───────────────────────
> >
> > <component class="org.seasar.teeda.core.util.ServletErrorPageManagerImpl">
> >  <initMethod name="addErrorPage">
> >   <arg>@[E-MAIL ADDRESS DELETED]</arg>
> >   <arg>"/view/error/error2.html"</arg>
> >  </initMethod>
> >  <initMethod name="addErrorPage">
> >   <arg>@[E-MAIL ADDRESS DELETED]</arg>
> >   <arg>"/view/error/error.html"</arg>
> >  </initMethod>
> > </component>
> >
> >
> >
> >
> >
> > >丸岡です。
> > >
> > >TestExceptionをRuntimeException のサブクラスにすることで問題なく動作しました。
> > >夜分遅くの回答ありがとうございました。
> > >
> > >
> > >
> > >>小林 (koichik) です.
> > >>
> > >>Date:    Fri, 28 Sep 2007 01:07:00 +0900
> > >>From:    <[E-MAIL ADDRESS DELETED]>
> > >>To:      <[E-MAIL ADDRESS DELETED]>
> > >>Subject: [Seasar-user:10756] [Teeda]エラーページについて
> > >>
> > >>> (2)次に、ユーザ例外「TestException」クラスを作成し、teedaErrorPage.diconに
> > >>> 【teedaErrorPage.dicon その2】のように設定しました。
> > >>>
> > >>> ※[Seasar-user:8941]を参考にしました。
> > >>>
> > >>>
> > >>> (3) 適当な画面のinitialize() メソッド内で例外を以下のように発生させてみたところ
> > >>> 意図するエラーページ(error2.html)に遷移せずにerror.htmlに遷移してしまいました。
> > >>>
> > >>>    public void initialize() throws TestException{
> > >>>      throw new TestException();
> > >>> }
> > >>>
> > >>>
> > >>> 上記のような使い方は何か間違いがあるのでしょうか?
> > >>
> > >>TestException が checked 例外の場合に
> > >>問題がありました.
> > >>
> > >>差し障りがなければ TestException を
> > >>RuntimeException のサブクラスにして
> > >>回避してください.
> > >>
> > >>checked 例外を使う必要がある場合は
> > >>以下の SNAPSHOT を使ってください.
> > >># Teeda Extension 以外は 1.0.11-RC2 を
> > >># 使ってください.
> > >>
> > >>http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-extension/1.0.12-EA1-SNAPSHOT/teeda-extension-1.0.12-EA1-20070927.185608-2.jar
> > >>
> > >>
> > >>--
> > >><component name="koichik">
> > >>    <property name="fullName">"Koichi Kobayashi"</property>
> > >>    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
> > >>    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> > >></component>
> > >>
> > >>_______________________________________________
> > >>Seasar-user mailing list
> > >>[E-MAIL ADDRESS DELETED]
> > >>https://ml.seasar.org/mailman/listinfo/seasar-user
> > >>
> > >_______________________________________________
> > >Seasar-user mailing list
> > >[E-MAIL ADDRESS DELETED]
> > >https://ml.seasar.org/mailman/listinfo/seasar-user
> > >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
>
>
> --
> =============================
> Shinpei Ohtani
> [E-MAIL ADDRESS DELETED]
> =============================
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================



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