[mayaa-user:870] Re: mayaaファイルの共通化

Susumu ISHIGAMI [E-MAIL ADDRESS DELETED]
2009年 12月 5日 (土) 12:42:48 JST


石上です。
お世話になっております。

下記の件、PageSourceDescriptorのカスタマイズによって、解決しました。
ありがとうございます。

ソースは下記URLに掲載しました。
http://d.hatena.ne.jp/s-ishigami/20091205/1259983924
参考になる方がいらっしゃいましたら、使ってください。
個人ブログの宣伝みたいになってしまって申し訳ないですが。

以上、報告までに。

2009年12月2日13:00 Susumu ISHIGAMI <[E-MAIL ADDRESS DELETED]>:
> 石上です。
>
> ご回答ありがとうございます。
>
> まずは、PageSourceFactoryのカスタマイズを試みてみます。
> というのも、できる限りOSやWEBサーバーに依存しないというポリシーがあるためです。
>
> シンポリックリンクによる方法も簡単で良さそうですね。
> スケジュールによっては使わせていただこうと思います。
>
> 素早い回答、本当にありがとうございました。
>
> 09/12/01 suga <[E-MAIL ADDRESS DELETED]>:
>> suga です。
>>
>> ごくシンプルに対応するなら、
>>
>>
>> http://mayaa.seasar.org/documentation/template_path.html
>> /mayaa と /html をテンプレートを探すパスに設定し、
>>
>> /mayaa/1/hoge.mayaa
>> /mayaa/1/fuga.mayaa
>> /html/1/hoge.html
>> /html/1/fuga.html
>>
>> となるように置くことでしょう。
>>
>>
>> このときユーザごとという要件については、例えば2種類思いつきます。
>> シンプルな 1 がお薦めですが、参考までに 2 も簡単に書きます。
>>
>> 1. シンボリックリンク
>>
>> /mayaa-base/hoge.mayaa
>> /mayaa-base/fuga.mayaa
>> としてmayaaを置いて、
>>
>> /mayaa/1 -> /mayaa-base のシンボリックリンクをユーザ登録時に作成
>>
>> この方法だと改造的なことは不要です。
>>
>>
>> 2. パス解決のクラスを置き換え
>>
>> 検証していないので詳細は書けませんが、
>>
>> http://mayaa.seasar.org/documentation/template_path.html
>> でパス解決をしている設定のデフォルトは、下記のファイルです。
>>
>> https://www.seasar.org/svn/mayaa/trunk/mayaa/src-impl/org/seasar/mayaa/impl/factory/org.seasar.mayaa.source.PageSourceFactory
>>
>> この factory serviceClass="..." に自作したクラスを指定して、
>> org.seasar.mayaa.source.PageSourceFactory ファイルを classes/META-INF の下に
>> 置いてください。(ServiceProvider の設定と同様です)
>>
>> <factory class="org.seasar.mayaa.impl.source.PageSourceFactoryImpl"
>>       serviceClass="自作したクラス">
>>       <parameter name="folder" value="/WEB-INF/page"/>
>> </factory>
>>
>> デフォルト実装の
>> org.seasar.mayaa.impl.source.PageSourceDescriptor
>> を継承して、
>> /1/hoge.mayaa を探しに来たところで
>> /mayaa-base/hoge.mayaa の内容を返す、というような実装にする形です。
>>
>> これだけ省略して書いても割と手間がかかることが分かると思います。
>> もっと複雑なことをしようとするとこちらの方法 (の変形) になりますが、
>> 先のメールの内容であればシンボリックリンクによる対応がシンプルで
>> メンテも楽だと思いますが、いかがでしょう。
>>
>> --
>> suga ( [E-MAIL ADDRESS DELETED] )
>>
>>
>>
>> 2009/12/1 Susumu ISHIGAMI <[E-MAIL ADDRESS DELETED]>:
>>> 石上です。
>>> いつもお世話になっております。
>>>
>>> 現在関わっている案件で、少々無理な要望がありまして、
>>> もし、簡単に対応できるならば教えていただきたく思います。
>>> もし、単純には無理でも、ソースコードの修正でもいいので、
>>> その場合は拡張ポイントなどを教えていただけると幸いです。
>>>
>>> さて、Mayaaの仕様では、
>>> .mayaaファイルと、.htmlファイルは、通常、同じ場所にあることが前提となっていると思います。
>>> しかし、これを、全く別のフォルダに配置し、
>>> さらに、リクエストURLは.html側を指定するようにしたいと思っております。
>>>
>>> 具体的には、
>>> /hoge.mayaa
>>> /fuga.mayaa
>>> /1/hoge.html
>>> /1/fuga.html
>>> /2/hoge.html
>>> /2/fuga.html
>>>
>>> のようにサーバー上に配置されていて、
>>> MayaaServletには*.htmlでマッピングしているとします。
>>>
>>> このとき、
>>> /1/hoge.html
>>> をリクエストすると、
>>> /hoge.mayaaを読み込んで処理させたく思います。
>>>
>>> これによって、やりたいことは、
>>> ある、ASPサービスで、ユーザごとにデザインを変更できるようにするという要件です。
>>> 今までは、ユーザごとに、.mayaaファイルまでコピーしていたのですが、
>>> それだと、.mayaaファイルのメンテナンスが大変になるため、
>>> .htmlのみをコピーするようにしたいと思いました。
>>>
>>> 過去のMLで、
>>> http://ml.seasar.org/archives/mayaa-user/2008-February/000645.html
>>> に似ていますが、
>>> 今回は、各ユーザには.mayaaファイルは必要なく、
>>> ディレクトリもユーザごとに作成したいです。
>>>
>>> 以上、何か方法がございましたら、
>>> よろしくお願いいたします。
>>> _______________________________________________
>>> mayaa-user mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/mayaa-user
>>>
>> _______________________________________________
>> mayaa-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/mayaa-user
>>
>


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