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