[Seasar-user:11437] Re: Layoutを使用しIncludeしたheader.html内に画面名を表示したい

Shinichi Yanagisawa [E-MAIL ADDRESS DELETED]
2007年 11月 4日 (日) 14:29:24 JST


お世話になります。柳澤です。

ご指導いただきありがとうございました。

> header.htmlに対応するHeaderPage.javaを作成します。
> HTMLの書き方はこれまでと同じで動的に書き換えたいところは
> idを振っておいてください。
>
> 後は、メインとなるPageクラスでHeaderPageのプロパティを
> 宣言しておけば、自動的にHeaderPageが設定されるので、
> 適当にプロパティを設定すればOKです。

この方法で対応できました。

ただ、すべてのPageクラスで自分の画面名をHeaderPageのプロパティ
に設定する必要があるため、もっとスマートな方法はないかと思っています。
(たとえば、各サブアプリケーションのlabel.propertiesに記述したプロパ
ティがHeaderに表示できるような。。)

あまりスマートではないのですが、pageクラスのprerenderメソッドをイン
ターセプトして、headerPageのプロパティに設定するようなinterceptor
を作ってみました。(添付)

その中での疑問ですが、interceptorの中でheaderPageをバインドしよ
うとしましたが、バインドできませんでした。
そこで、S2Containerをバインドし、headerPageを取得するようにしまし
たが、エラーが発生しHeaderPageにキャストできませんでした。
(shopping.web.layout.HeaderPage$$EnhancedByS2AOP$$43a52c
  cannot be cast to shopping.web.layout.HeaderPage)

本題とずれてしまいますが、この原因についてわかりましたら教えてください。

また、本題のスマートにHeader.htmlに画面名を表示する方法がありました
ら教えてください。

よろしくお願いします。
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: HeaderPropertiesSetterInterceptor.java
型:         application/octet-stream
サイズ:     2483 バイト
説明:       無し
URL:        http://ml.seasar.org/archives/seasar-user/attachments/20071104/3c7f32f2/attachment.obj 


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