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

Masataka Kurihara kurihara
2004年 11月 29日 (月) 01:06:33 JST


栗原です。

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

  ここですが、カスタムタグ化=コードジェネレート&TLD生成、と確認した
上で、JAR化の要件としてこのカスタムタグ化が必要なのは、TLDの存在です。
カスタムタグインジェクションにおいて、ライブラリURL(のプレフィックス)
+TLD中で宣言される名前で、カスタムタグ実装クラス名を引きに行くので。
カスタムタグインジェクションについて、Tapestryがpageファイルへのパス
でコンポーネントの位置を解決すべく定義するように、taglib宣言の代わり
に、ファイルパスおよびクラスパスでカスタムタグのエリアスを定義できれ
ば解決できるかと思います。乱暴な言い方をすると、\WEB-INFの下・WEB-INF\
libのJarの中、\WEB-INF\classesの下のそれぞれどこでもテンプレートが置
けることが要件なのかと理解しました。

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

  そうですね。指定方向が外側から内側で、Tapestryの内側から外側という
方向と逆なのですが、おそらく想定されている使い方では効能の点で同じか
と思います。

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

  modelマジックカスタムタグはあまり作りこむところではないと考えています。
本当は無くてもよいかと悩むところなのですが、単体でアプリケーションを作る
ために用意しました。jsp:useBean程度の機能のみを盛り込んであります。いわ
ば、モック、テスト、教育用です。本格的には、Seasarと組み合わせたりする
方法なるかと思います。Seasar2.1ではHTTPリクエストをコンポーネントにイン
ジェクションしたりもできますしね。
  ご指摘のlist8は相当苦しいのですが、不幸中の幸いは、OGNLの例にはなり
ました。



On Sun, 28 Nov 2004 23:57:32 +0900
Sadanori ITO <[E-MAIL ADDRESS DELETED]> wrote:

> 伊藤です。
> 
> 早速ご回答頂きありがとうございます。
> 
> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> http://lists.sourceforge.jp/mailman/listinfo/seasar-user






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