[Seasar-user:1235] Re: Mayaドキュメント初稿第2版

Sadanori ITO sito_dev
2004年 11月 28日 (日) 23:57:31 JST


伊藤です。

早速ご回答頂きありがとうございます。

On Sun, 28 Nov 2004 18:55:09 +0900
Masataka Kurihara <[E-MAIL ADDRESS DELETED]> wrote:

> > Q3:
> > Tapestry でもテンプレート(*.html)と XML の仕様ファイル(*.page,*.jwc)
> > の配置について ML で議論されているのをよく見かけましたが,Maya では
> > これらに相当するファイルをどこから探して来るのでしょうか?
> 
>   リクエストURLで、ちょうどJSPのように置かれている場所で探すように考
> えています。テンプレートおよびMaya設定XML(あれば)は同じ位置に置く。
> ここは重要なのにまだ議論・考察をつめていないところで、\WEB-INF以下の
> フォルダやJarアーカイブ中に置くことを考えていない仕様です。このへん、
> お考えあったらお聞かせください。現在のところはURL検索のみを仕様化し
> ています。

ページとして考えた場合は,現在の仕様で問題ないように思いますが,
コンポーネントとして考えた場合に特に JAR で配布というのが重要に
なってくるように思います。

下記でおっしゃられているように,カスタムタグ化しないと JAR にできず,
そうしてしまうと Maya のxx機能が利用できないというケースが増えると
コンポーネントとしての利用が促進されないのではないでしょうか?

※一番極端な例としては contrib:Inspector のようにページ込みで
  コンポーネント化するようなことが実現しにくくなってしまうのでは?
  という危惧があります。

> > Q4:
> > Q2,Q3 と関係しなくもないですが,Maya テンプレートのカスタムタグ化を
> > 行わないと JAR に格納してコンポーネントを配布することはできないので
> > しょうか?
> 
>   テンプレートカスタムタグのダイナミックなコードジェネレーションおよび
> ローディングは考えています。似た構造でテンプレートページのダイナミック
> なコードジェネレートおよびローディングが実現されます。つまりこの場合は
> 〜 略
>
> > ※カスタムタグ化した後でもテンプレート強制差し替えテクニックは使える
> >   のかどうかが気になりました。
> 
>   ということで、Maya環境であればという限定でそのテクニックは可能である
> としたいと思います。実装上の事情でファーストバージョンで可能にできるか
> は分かりませんが、基本的にJSPやTapestryからインスパイアされていますので
> そういうダイナミックな作りにしていきます。

詳しく説明していただき恐縮です。
概ね理解できました。ただ,先にも述べましたように今後機能が拡張されて
いく中で,「Maya環境」と「カスタムタグ化」との間の格差が広がらない方が
ユーザからすると戸惑わなくて済むのではないかと思います。

> > Q5:
> > その他,Tapestry との対比で考えると
> > Shell
> > informal parameter
> > inherited-binding
> > 辺りが気になりますが,Shell や informal で実現するようなことは
> > 「Mayaではボディ部分など、どこでも式言語が使えます。」
> > という機能で対応可能という認識でよろしいでしょうか?
> 
>   まず、informal parameterという概念は無くなります。JSPのカスタムタグ
> において、JSPファイルからTLDにパラメータとして定義されていない属性を
> スルーで出力する機能が無いと思っていたからです。無いですよね?もし
> 有ったら大変。議論の根底がくつがえってしまいます。

了解しました。

>   inherited-bindingはコードジェネレータの機能としてエレメント間の親子
> 関係を当然とりますので実現可能ですが、初期仕様として省いています。
> 私個人の経験ですがTapestry利用開発でinherited-bindingを使うケースが
> ほとんど無かったので、仕様から落としました。が、この概念は将来に要望で
> 出てくるかもしれません。出てきたらその必要ケースを議論して採否を決定
> できればと思います。いります?もし重要と考えていらっしゃれば、将来と
> 言わずに、今、検討しましょう。

もう一度ドキュメントを確認したところ,勘違いしていた部分がありました
ので,当初質問した意味での inherited-binding は不要と思われます。

そのまま,m:hoge="${ binding.hoge }" のようにして内部のコンポーネント
に渡してあげればよいだけですよね?

contrib:Table や contrib:Tree のような複合型コンポーネントのケースを
心配していたのですが,そもそも BaseComponent のようなものがあるわけ
ではないのですね。
(つい,Tapestry のイメージで読み進めていました)

ところで,似たような意味で model で生成したモデルオブジェクトに
binding は使えるのでしょうか?
それとも list.8 のように適当なパラメータを持つメソッドを用意して
おく必要があるのでしょうか?
あるいはこの辺りは今後予定されている「Seasarとの連携」辺りで
述べられることなのかも知れません。

以上です。
読み込みが足らずに勘違いしているような部分があれば,ご指摘ください。
よろしくお願いします。

-- 
s.ito

__________________________________
Do You Yahoo!?
Upgrade Your Life
http://bb.yahoo.co.jp/




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