[Seasar-user:5694] Re: [Teeda] struts のRequestProcesserにあたるもののあたりにInterceptorをかけるには?

Mitsutaka Sato [E-MAIL ADDRESS DELETED]
2007年 1月 9日 (火) 23:11:19 JST


佐藤です。ご回答ありがとうございます。
すみません、説明不足だったんでもう一度。

HogePageとFugaPageがあったとして、
そのプロパティ String mobileUid; に値を自動セットしたいと考えていまして、
mobileUidは InterceptorでHttpRequestのHeaderを取得して
Pageクラスにセットすることを検討しています。

このとき、PageクラスにInterceptorをかけるやり方だと、
まず、setMobileUidメソッドを持つInterfaceを定義し、
HogePageとFugaPageがそのInterfaceをImplementするように定義し、
Interceptorで、((ThisInterface)invocation.getThis()).setMobileUid
という形で実行してやればよいのかなあと思うのですが、
ちょっと面倒だなあと。

そこでPageクラスが実行される前段階のどこかにInterceptorをしかけて、
Interceptor内では、 request.setAttribute("mobileUid"); としておけば、
ContainerがPageクラスを実行するときにRequestAttributeから自動セットしてくれる
のでHappyだなあと思っていたわけです。

#
PageクラスへのInterceptorだと、Interceptorが実行される前に既にRequestAttributeからの自動セットが実行されてしまっている。

上記の方法でも全然問題ないとは思っているのですが、もっとsmartな方法が
あるようでしたらご教授いただければ幸いです。


On 1/9/07, Yasuo Higa <[E-MAIL ADDRESS DELETED]> wrote:
>
> ひがです。
>
> > 佐藤と申します。
> > いつもTeedaの質問をさせていただいており、お世話になっております。
> >
> じゃんじゃんどうぞ。
>
> > どうしてもstruts(s2struts)ベースで物事を考えてしまうのですが、
> > 昔ServletFilterでやっていたような処理を、s2struts時代には RequestProcesserに
> > Interceptorをかけて実行していました。
> >
> > # 例えば、UserAgentを見て、キャリア判別して、その値をRequestAttributeにセット、、といった処理です。
> >
> > TeedaではRequestProcesserにあたる部分がどこになるのか、不勉強で理解できていないのですが
> > そのあたりにInterceptorをかけるやり方が可能でしょうか?
> >
> PageにInterceptorをかけるとよいのではないかと思います。
>
> > また、これも初歩的な質問になってしまいますが、
> > RequestAttributeの値はPageクラスやActionクラスに自動セットされるのでしょうか?(s2strutsのように)
> >
> はい。
>
> Yasuo Higa
> The Seasar Project
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20070109/10b0fcc3/attachment.html 


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