[Seasar-user:11439] Re: Re:Layoutを使用しIncludeしたheader.html内に画面名を表示したい
YASUO HIGA
[E-MAIL ADDRESS DELETED]
2007年 11月 4日 (日) 16:48:32 JST
ひがです。
> お世話になります。柳澤です。
>
> ただ、すべてのPageクラスで自分の画面名をHeaderPageのプロパティ
> に設定する必要があるため、もっとスマートな方法はないかと思っています。
> (たとえば、各サブアプリケーションのlabel.propertiesに記述したプロパ
> ティがHeaderに表示できるような。。)
>
headerのtitleなら自動的に引き継がれるはずです。
> あまりスマートではないのですが、pageクラスのprerenderメソッドをイン
> ターセプトして、headerPageのプロパティに設定するようなinterceptor
> を作ってみました。(添付)
>
> その中での疑問ですが、interceptorの中でheaderPageをバインドしよ
> うとしましたが、バインドできませんでした。
> そこで、S2Containerをバインドし、headerPageを取得するようにしまし
> たが、エラーが発生しHeaderPageにキャストできませんでした。
> (shopping.web.layout.HeaderPage$$EnhancedByS2AOP$$43a52c
> cannot be cast to shopping.web.layout.HeaderPage)
>
> 本題とずれてしまいますが、この原因についてわかりましたら教えてください。
>
この辺は、HOT deployとのからみで、過去に何度(かなり)か出てきています。
インターセプタをinterceptorのパッケージにおき、
AspectCustomizerを使うようにすれば大丈夫なはずです。
http://s2container.seasar.org/2.4/ja/DIContainer.html#Customizer
にあるページのコンポーネントに適用する場合が参考になると思います。
よろしくお願いします。
Seasar-user メーリングリストの案内