[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 メーリングリストの案内