- ベストアンサー
struts1からstruts2へとフレームワークのバージョンアップし
struts1からstruts2へとフレームワークのバージョンアップしています。 そこで、セッションタイムアウトについて困っています。 struts1のときでは、SessionFilterを使って各アクションでセッションタイムアウトのチェックを行い、タイムアウトした場合は、エラー画面を表示するようにしていました。 struts2でもSessionFilterを使って、実装しようとしましたが挙動がおかしくなります。 struts2では、SessionFilterは使えないのでしょうか? struts2での書き方が分からず困っています。 アドバイスをお願いいたします。
- みんなの回答 (2)
- 専門家の回答
お礼
アドバイスありがとうございました。 色々と動かしているうちに、なんとか動くようになりました。 web.xmlからのsessionFilterの記述は外して、FilterDispatcher起動時にIntercepterして セッションタイムアウトのチェック処理を動かすようにしました。
補足
web.xml <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>hoge.actions</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>sessionFilter</filter-name> <filter-class>jp.co.pt.session.SessionFilterAction</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>hoge.actions</param-value> </init-param> </filter> <filter-mapping> <filter-name>sessionFilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> 色々試したのですが、上記のようにweb.xmlの記述の順番だと、sessionFilterはスルーして行ってしまいます。 また先程のエラーを直訳してみましたが、Strutsのディスパッチャが見つからないと書いてありました。 これは通常の、FilterDispatcherを通さないといけないということでしょうか?