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

Back to archive index

古川 烈 r_f_315****@hotma*****
2008年 9月 9日 (火) 09:55:47 JST


古川です、
返答が遅くなり申し訳ございません。
(最近仕事がとても。。。orz)


ありがとうございました。

大変勉強になりました。



なるほど、そういうことだったんですね。
内容から考えるとFragmentはそもそもそういう使い方を想定していないのでしょうね。
(つまりFragmentを継承したくなるような状況には他の解決策がある?)

最良の方法で自分がフレームを利用できていたら良いのですが、
最近ますます自信が無くなってきました;;


> Date: Wed, 3 Sep 2008 14:40:50 +0900
> From: shiny****@gmail*****
> To: wicke****@lists*****
> Subject: [Wicket-ja-user 218] Re:	Fragmentと継承について
> 
> 沖野です。
> 
> 動作を追ってみました。
> <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 mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user

_________________________________________________________________
Hotmail をお使いの皆様だけに低価格ブロードバンドサービス!
http://campaign.live.jp/eaccess/Top/
-------------- next part --------------
HTMLの添付ファイルを保管しました...
Download 


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