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

Masataka Kurihara kurihara
2004年 11月 28日 (日) 18:55:35 JST


栗原です。自宅のアドレスからの投稿です。

  伊藤さんはじめまして。コメントありがとうございます。さて、順にお答え
したいと思います。

> Q1:
> P.24(?) に「例では、${ year }がそれです。」とありますが,
> [list.14 テンプレートカスタムタグ] では ${ binding.year } となって
> います。どちらの記述が正しいのでしょうか?
> ※また,同じ例の ${ bingind.name } は ${ binding.name } の誤植ですよね?

  誤植です。手元では直しました。みな、${ binding.*** }です。binding
エレメントもしくは$bindingマジックカスタムタグにてテンプレートカス
タムタグのパラメータを宣言したものについて、java.lang.Map型のbinding
という組み込みオブジェクトが式言語からアクセスできるというシナリオで
サンプルおよび説明することを意図していました。

> Q2:
> P.25(?) に「標準的なJSPタグライブラリにします。」とありますが,
> その状態では Maya のライブラリは不要になるという意味でしょうか?
> また,テンプレート自動選択機能はこの状態でも有効と考えてよい
> のでしょうか?

  Mayaのライブラリは、ランタイム部分は必要になると考えています。テン
プレートからJavaソースコードをジェネレーションする際に、そのソースコ
ードはMayaの提供する抽象クラスを継承したものにしようと思ってます。一
方でサーブレットやHTMLパーサー、コードジェネレータ等の部分は一度コン
パイルしてしまったテンプレートカスタムタグには不要ですから、配布で同
梱しなくてもよいようにしたいと思います。書ききれていないドキュメント
の章を初稿第2版では最後のページに項目だけ出していますが、その配布に
からむ2項が、この問題について解説する予定のものです。すなわち、アプリ
ケーションとしてフルセットのMayaライブラリを同梱する配布と、カスタム
タグとして軽量に配布したい場合の対応方法があります。
  テンプレートの自動選択機能は配布後、たとえMayaページ中で無く、JSPペ
ージ内で利用したとしても、有効にしたいと考えています。

> Q3:
> Tapestry でもテンプレート(*.html)と XML の仕様ファイル(*.page,*.jwc)
> の配置について ML で議論されているのをよく見かけましたが,Maya では
> これらに相当するファイルをどこから探して来るのでしょうか?

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

> Q4:
> Q2,Q3 と関係しなくもないですが,Maya テンプレートのカスタムタグ化を
> 行わないと JAR に格納してコンポーネントを配布することはできないので
> しょうか?

  テンプレートカスタムタグのダイナミックなコードジェネレーションおよび
ローディングは考えています。似た構造でテンプレートページのダイナミック
なコードジェネレートおよびローディングが実現されます。つまりこの場合は
TLDを経由しないカスタムタグ実装クラスの解決が行われると換言できるので
はないでしょうか。が、ドキュメントには書けてませんし、このへんの動きは
開発開始後に実装方法のさらなる検討が必要になるかと思います。
  カスタムタグ化をantタスクやEclipseプラグインを通して行わないと、
非Mayaアプリケーションにて再利用できないという制限で考えています。テン
プレートを直接配置しても、ダイナミックなコードジェネレートにより利用は
できますが、それはMayaエンジンで動作している場合です。テンプレートカス
タムタグは非MayaであるJSP環境でも動作するように構想していますが、その
場合はTLDが必要でもあります。そのTLDも付属開発サポート機能(antタスク
など)で行いたい、ダイナミックなコードジェネレーション時にはTLS生成を
しないと思います。

> ※カスタムタグ化した後でもテンプレート強制差し替えテクニックは使える
>   のかどうかが気になりました。

  ということで、Maya環境であればという限定でそのテクニックは可能である
としたいと思います。実装上の事情でファーストバージョンで可能にできるか
は分かりませんが、基本的にJSPやTapestryからインスパイアされていますので
そういうダイナミックな作りにしていきます。

> Q5:
> その他,Tapestry との対比で考えると
> Shell
> informal parameter
> inherited-binding
> 辺りが気になりますが,Shell や informal で実現するようなことは
> 「Mayaではボディ部分など、どこでも式言語が使えます。」
> という機能で対応可能という認識でよろしいでしょうか?

  まず、informal parameterという概念は無くなります。JSPのカスタムタグ
において、JSPファイルからTLDにパラメータとして定義されていない属性を
スルーで出力する機能が無いと思っていたからです。無いですよね?もし
有ったら大変。議論の根底がくつがえってしまいます。
  inherited-bindingはコードジェネレータの機能としてエレメント間の親子
関係を当然とりますので実現可能ですが、初期仕様として省いています。
私個人の経験ですがTapestry利用開発でinherited-bindingを使うケースが
ほとんど無かったので、仕様から落としました。が、この概念は将来に要望で
出てくるかもしれません。出てきたらその必要ケースを議論して採否を決定
できればと思います。いります?もし重要と考えていらっしゃれば、将来と
言わずに、今、検討しましょう。
  式言語の利用できる位置については、まんまJSP2.0のとおりで、Tapestry
にはない柔軟性だと思います。それはTapestryでは式言語をテンプレに埋め
込む際に、ognl:というプレフィックスをつけるに対し、JSP2.0 では${  }と
ブロックに囲うところからもうかがい知れます。MayaではJSP2.0と同じです
ので、どこでも、いくつでも式言語ブロックをかけるということにしてます。
式言語をボディに書いたり、非インジェクションタグの属性値にも使えるほ
か、value="${ binding.lastName } ${ binding.firstName}さん" などのよ
うな記法を可能にしています。こういった柔軟さを利用して、Tapestryにある
機能だけどMayaでは落とした機能もおおむねカバーできると考えています。
もしカバーできないものがあれば、盛り込みを検討しなければなりません。
  よろしくお願いいたします。


On Sun, 28 Nov 2004 17:33:06 +0900
Sadanori ITO <[E-MAIL ADDRESS DELETED]> wrote:

> 伊藤です。
> 
> On Wed, 24 Nov 2004 20:31:14 +0900
> Masataka Kurihara <[E-MAIL ADDRESS DELETED]> wrote:
> 
> > 栗原です。
> 
> はじめまして。
> 
> > Mayaドキュメントの初稿第2版をアップしました。
> > 
> > http://package.gluegent.com/~kurihara/maya/MayaDoc20041124.zip
> 
> Tapestry の良い部分も?な部分もドキュメントの冒頭にある内容について
> 大変共感する部分が多く,それだけに Maya に対する期待が膨らんでいます。
> 
> 以下,質問など挙げさせて頂きたいと思います。
> ※ OpenOffice.org で開いて読んでいるのですが,他の方の質問とページが
>    ずれているような気がします...予めご了承ください。
> 
> Q1:
> P.24(?) に「例では、${ year }がそれです。」とありますが,
> [list.14 テンプレートカスタムタグ] では ${ binding.year } となって
> います。どちらの記述が正しいのでしょうか?
> ※また,同じ例の ${ bingind.name } は ${ binding.name } の誤植ですよね?
> 
> Q2:
> P.25(?) に「標準的なJSPタグライブラリにします。」とありますが,
> その状態では Maya のライブラリは不要になるという意味でしょうか?
> また,テンプレート自動選択機能はこの状態でも有効と考えてよい
> のでしょうか?
> 
> Q3:
> Tapestry でもテンプレート(*.html)と XML の仕様ファイル(*.page,*.jwc)
> の配置について ML で議論されているのをよく見かけましたが,Maya では
> これらに相当するファイルをどこから探して来るのでしょうか?
> 
> Tapestry の *.application で行う
> <page name="Hoge" specification-path="/WEB-INF/path/to/Hoge.page"/>
> のような指定を行う仕組みを考えないとすると WEB-INF 配下は対象外?
> 
> Q4:
> Q2,Q3 と関係しなくもないですが,Maya テンプレートのカスタムタグ化を
> 行わないと JAR に格納してコンポーネントを配布することはできないので
> しょうか?
> 
> ※カスタムタグ化した後でもテンプレート強制差し替えテクニックは使える
>   のかどうかが気になりました。
> 
> Q5:
> その他,Tapestry との対比で考えると
> Shell
> informal parameter
> inherited-binding
> 辺りが気になりますが,Shell や informal で実現するようなことは
> 「Mayaではボディ部分など、どこでも式言語が使えます。」
> という機能で対応可能という認識でよろしいでしょうか?
> 
> 以上です。
> ご確認の程よろしくお願いします。
> 
> -- 
> 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 メーリングリストの案内