[mayaa-user:639] Re: [mayaa]複数のmayaaファイルをデフォルトにしたい

suga [E-MAIL ADDRESS DELETED]
2008年 2月 21日 (木) 11:43:03 JST


suga です。

2008/2/21 Yasuhiro Oguro <[E-MAIL ADDRESS DELETED]>:
>  > /aaa/index.mayaa に m:templateSuffix="/foo/bar/index" としておくと、
>  > テンプレートは
>  > /aaa/index$/foo/bar/index.html
>  > になります。
>  ということは
>
>  /aaa/index.htmlと/aaa/index$/foo/bar/index.htmlというファイルに/aaa/index.mayaaが適用されるということですね。

はい。

ここで m:templateSuffix="${ request.suffix }" のように動的な値を渡せますので、
Action またはどこかの処理で request にセットしてからforward するようにすれば
結構自由度高くテンプレートを選べると思います。


>  で、エンジンを拡張すると、/aaa/index.mayaaが
>  > /foo/bar/index.html
>  に適用されるようになると。

拡張の例はこうですが、当然どのようにでもできます。


>  で、最初の要件に戻ると、
>
> > リクエルト                     読込HTML      適用mayaaファイル
>  > ------------------------------------------------------------
>  > Aアクション/aaa/bbb/    aaa/bbb.html           A.mayaa
>  /aaa/bbb.htmlに/A.mayaaを適用するには、エンジン拡張後
>  /A.mayaaにm:templateSuffix="/aaa/bbb.html"
>  と書くわけでしょうか?

そうではなく、ユーザごとに同じ階層構造のディレクトリを作成しておいて、
ユーザ識別を含めたパスを suffix として指定する形になります。
# suffix という意味から逸脱しているような気はしますが。

したがって、たとえば

/foo/bar.mayaa
に対応させて
/foo/bar$/user-a/foo/bar.html
/foo/bar$/user-b/foo/bar.html
/foo/bar$/user-c/foo/bar.html

を使えるようになります。
このとき suffix は ${ ユーザ名/foo/bar } となります。
/foo/bar の指定部分がやや冗長ですが、やり方は工夫次第でしょう。


>  でも実際に運用してみると、結局htmlファイル個別にmayaaを作る羽目になる可能性が高い気がします・・・ユーザはわがまま言いますからねorz

これはまた別の問題ということで :-)


-- 
suga ( [E-MAIL ADDRESS DELETED] )


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