[Seasar-user:12488] Re: [teeda]TakeOverアノテーションについて

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 1月 12日 (土) 20:02:03 JST


小林 (koichik) です.

Date:    Fri, 11 Jan 2008 21:48:22 +0900
From:    菊山 亮 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:12487] [teeda]TakeOverアノテーションについて

> Layout機能を使用しているのですが、
> childBody側のdoXxxメソッドではTakeOverが有効となるのですが、
> layout.html内にIncludeしたPageクラスのdoXxxメソッドではTakeOverが無効となっ
> てしまいます。

現状としては,TekeOver は現在の本来のページクラスから
次の本来のページクラスへのプロパティの引継ぎを制御
するものなので,レイアウトやインクルードされた
ページクラスは,アノテーションをチェックする対象と
なっていません.

> 現状の構成ですが、layoutにmenu.htmlがincludeされており、commandButtonが
> 押下された際に値のクリアをし、

ちょっとイカサマっぽいのですが,MenuPage の do〜() と
同名のメソッドを本来のページクラスにも持たせて
TakeOver を指定すると意図したようになると思います.

public class MenuPage {
  public Class doMenuXxx() {
    ...
  }
}

public class XxxPage() {
  @TakeOver(...)
  public Class doMenuXxx() {
    ...
  }
}

# 定数アノテーションの場合でも本来のページクラスに
# do〜() メソッドが必要です.

もちろん,menu.html のフォームをサブミットした場合に
本来のページクラスの do〜() が呼ばれることはありません.
かなーり紛らわしいとは思うので,なんかいい仕様を
考えることができれば対処したいと思いますが,うーん.

> CrudTypeをDeleteに設定したいのですが、
> これらは実現不可能なのでしょうか?

こちらは意味が分かりませんでした.
CrudType というのは MenuPage のプロパティでしょうか?
それとも本来のページのプロパティでしょうか?


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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