古川 烈
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