[Seasar-user:9037] Re: [S2Struts]JSP からのコンポーネントの取得について
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2007年 7月 9日 (月) 17:32:48 JST
仙波と申します。
ひがさん、ご返答ありがとうございます。
> ということは、Filterの順番ではないでしょうか。
> Seasar2用のFilterの方を最初に指定してください。
順番は、下記にようにs2filterを最初に指定しております。
<filter-mapping>
<filter-name>s2filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>s2strutsfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>hogeFilter</filter-name>
<url-pattern>*.do</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
Actionで明示的にExceptionを発生させたケースを
検証していたのですが、下記の2パターンで結果が異なりました。
(ケース1)struts-config.xmlにglobal-exceptionsを記述する場合。
→ コンポーネント取得可能。
(ケース2)struts-config.xmlにglobal-exceptionsを記述しない場合。
→ コンポーネント取得不可。
[ESSR0007]sessionはnullあるいは空であってはいけません
のメッセージが出力されます。
※struts-config.xml の global-exceptionsの記述は下記のように
しております。
<global-exceptions>
<exception key="rutime.exception"
type="java.lang.RuntimeException"
path="/jsp/testError.jsp">
</exception>
</global-exceptions>
このあたりの設定による挙動の違いも気になります。
以上です。
よろしくお願いいたします。
Yasuo Higa <[E-MAIL ADDRESS DELETED]>さん:
2007/07/09 15:37:16
--
> ひがです。
>
> > 仙波と申します。
> >
> > 永島さん
> >
> > ご返答ありがとうございます。
> >
> > もう少し詳しい情報を記述すべきでした。申し訳ございません。
> >
> > こちらで再度動作検証を行いました情報を記述します。
> >
> > 【概要】
> >
> > サーブレットフィルターでExceptionをthrowし、
> > web.xmlのexception-typeに記述しているJSPへ遷移させる。
> > JSPで取得したい「Hoge」クラスはinstance="sessionで登録する。
> >
> > (2)実行結果
> >
> > (2−1)サーブレットフィルターでExceptionをthrowする場合。
> >
> > 下記のメッセージが出力されます。
> >
> > org.seasar.framework.exception.EmptyRuntimeException:
> > [ESSR0007]sessionはnullあるいは空であってはいけません
> > at org.seasar.framework.container.deployer.
> > SessionComponentDeployer.deploy(SessionComponentDeployer.
java:44)
> > at org.seasar.framework.container.impl.ComponentDefImpl.
> > getComponent(ComponentDefImpl.java:94)
> > at org.seasar.framework.container.impl.S2ContainerImpl.
> > getComponent(S2ContainerImpl.java:128)
> >
> > (2−2)サーブレットフィルターでExceptionをthrowしない場合。
> >
> > JSPからコンポーネントを取得できます。
> >
> ということは、Filterの順番ではないでしょうか。
> Seasar2用のFilterの方を最初に指定してください。
>
> よろしくお願いします。
>
> --
> Yasuo Higa
> [E-MAIL ADDRESS DELETED]
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内