[Wicket-ja-user 218] Re: Fragmentと継承について

Back to archive index

shinya okino shiny****@gmail*****
2008年 9月 3日 (水) 14:40:50 JST


沖野です。

動作を追ってみました。
<wicket:child><wicket:extend>はレンダリング時にマージするのではなく、
htmlファイルを読み込む時に継承クラス分も読み込んでマージしたものをキャッシュしているようです。(Markup・MergedMarkupクラス)

PageやPanelはレンダリング時に自クラスに対応したMarkupを使っていますが、
Fragmentはコンストラクタで渡されたMarkupContainerクラスのMarkupを使います。
なので、例にあったDDDのhtmlは使われず、BBBのhtml内の<wicket:fragment>部分だけがレンダリングされるようになります。

Fragmentで継承を使うのはいろいろ手を入れないと難しそうです。

08/09/01 に 古川 烈<r_f_315****@hotma*****> さんは書きました:
>
> 古川です、
> Fragmentと継承の動作が良くわからないので質問です。
>
> あるパネル(html)内で以下のように定義しました。
>
> <wicket:panel>
>     <span wicket:id="data">あああ</span>
> </wicket:panel>
> <wicket:fragment wicket:id="fragment">
>     <wicket:child />
> </wicket:fragment>
>
>
> /**
>  * パネル
>  */
> public class BBB extends Panel implements Serializable {
>
>     public BBB( String id ) {
>         super( id );
>         this.add( new Label( "data", "ほげほげ" ) );
>     }
>
>     /**
>      * 親フラグメント
>      */
>     public class CCC extends Fragment implements Serializable {
>
>         public CCC( String id ) {
>             super( id, "fragment", BBB.this );
>         }
>     }
> }
>
>
> (子フラグメントHTML)
> <wicket:extend>
>     テスト文字列
> </wicket:extend>
>
> /**
>  * 子フラグメント
>  */
> public class DDD extends BBB.CCC implements Serializable {
>
>     public DDD( BBB bbb, String id ) {
>         bbb.super( id );
>     }
> }
>
> としてページWebPage AAAの内部で
>
>         BBB bbb = new BBB( "mypanel" );
>
>         this.add( bbb );
>         this.add( new DDD( bbb, "mypanel2" ) );
>
> としました。
>
> すると、画面では
> 「ほげほげ」だけ表示され、「テスト文字列」は表示されませんでした。
> DDDのコンストラクタ内部でSysoutしてみたらしっかりコンストラクタは走っていました。
> childの継承部分が完全に無視されているように思いました。
>
> 「Fragment」を継承したクラスをさらに継承することはできないのでしょうか???
> どなたかお詳しい方ご教示していただけませんでしょうか?
>
> ________________________________
> Hotmailユーザ限定の格安ブロードバンドご存じですか? 月額1,480円から。 ずっと同じ安心料金、比べて分かるこの安さ
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
>
>


-- 
沖野信也
shiny****@gmail*****




Wicket-ja-user メーリングリストの案内
Back to archive index