[mayaa-user:554] Re: ファイルをDB上の配置したい

Junichi Kato [E-MAIL ADDRESS DELETED]
2007年 8月 19日 (日) 00:35:55 JST


sugaさん,
加藤です.

すごく参考になりました.なんとかなりそうです.ありがとうございました.

それと,もうひとつだけ教えてください.

現状としては,VelocityServletをサブクラス化したサーブレットを作って,
handleRequestメソッドでリクエストパラメータの内容に応じて,DBから
テンプレートのソースを取得し,Templateを生成してブラウザに返して
います.これと同じことをMayaaできないか調べております.

このVelocityServletでは,仮想的なURLを想定していて

/appName/testBlog/index.html

で呼ばれると,

UrlRewriteFilterで,

/appName/myVelocityServlet?subApplicationName=testBlog&templateName=index.html

に置き換えて処理しております.
subApplicationNameの部分は,設定により使える使えないが変わります.

一方,MayaaServletの場合なのですが,
デフォルトですと,MayaaServletのサーブレットマッピングにおけるURLパター
ンが, *.htmlや*.mayaa なのですが,上記のようなに

/appName/myMayaaServlet?subApplicationName=testBlog&templateName=index.html
/appName/myMayaaServlet?subApplicationName=testBlog&templateName=index.mayaa

このように,パラメータを渡して,テンプレートを処理したいのですが,
MayaaServletをどのようにカスタマイズすべきでしょうか?

doServiceあたりかなぁとみておりますが,CycleUtilと,Engineがいまいちまだ
理解ができていないので,アドバイスいただければ幸いです.




On Sat, 18 Aug 2007 22:22:57 +0900
suga <[E-MAIL ADDRESS DELETED]> wrote:

> suga です。
> 
> On 8/17/07, Junichi Kato <[E-MAIL ADDRESS DELETED]> wrote:
> > htmlファイル,mayaaファイルの内容をDB上に配置したいのですが,
> > どのようなカスタマイズを行えばよいでしょうか?
> > アドバイスをいただければ幸いです.よろしくお願いします.
> 
> テンプレートファイル、Mayaa ファイル、m:exec で読み込むスクリプトファイルは
> すべて同じロジックで探し、読み込んでいます。
> 
> ファイルのパスを「システム ID」として扱い、通常であればクラスパスのルート、
> コンテキストルート、/WEB-INF/page/ の3つをルートとし、"/" 始まりのパスで
> ファイルを指定します。
> 
> たとえば "/index.html" や "/foo/bar.mayaa" などが「システム ID」になります。
> システム ID を渡されたら、それに対応する InputStream を取得できる実装を
> 用意することで、DB からテンプレートファイルなどを読み込むように作ることは
> できます。
> 
> 
> org.seasar.mayaa.source.SourceDescriptor を実装したクラスを用意する形に
> なります。
> 標準で使われるクラスは下記のクラスです。
>   org.seasar.mayaa.impl.source.PageSourceDescriptor
> 
> このインスタンスを生成するファクトリクラスは下記のクラスです。
>   org.seasar.mayaa.impl.source.PageSourceFactoryImpl
> 
> これらの定義はエンジン設定同様に設定できます。
> 設定ファイルは下記パスに置きます。
>   META-INF/org.seasar.mayaa.source.PageSourceFactory
> 
> 標準の内容は下記の通りです。
> 大抵の場合は factory タグの serviceClass 属性を独自クラスに書き換えて、
> parameter を書き換えたクラス用のものに入れ換えれば実現できるでしょう。
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE factory
> 	PUBLIC "-//The Seasar Foundation//DTD Mayaa Factory 1.0//EN"
>     "http://mayaa.seasar.org/dtd/mayaa-factory_1_0.dtd">
> <factory class="org.seasar.mayaa.impl.source.PageSourceFactoryImpl"
> 	serviceClass="org.seasar.mayaa.impl.source.PageSourceDescriptor">
> 	<parameter name="folder" value="/WEB-INF/page"/>
> </factory>
> 
> 
> 細かいところは API (パッケージ名に impl が含まれないクラス/インターフェース)
> の javadoc を見ればある程度わかると思います。
> 
> -- 
> suga ( [E-MAIL ADDRESS DELETED] )
> _______________________________________________
> mayaa-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/mayaa-user

───────────────────────────────
 株式会社 グランテック
 代表取締役社長
 加藤 潤一 Junichi Kato

〒154-0012
東京都世田谷区駒沢2-16-1 サンドー駒沢ビル4F
TEL 050-5538-2383  FAX 03-3487-7211
HP : http://www.grandtech.jp/
BLOG : http://d.hatena.ne.jp/j5ik2o/
E-MAIL : [E-MAIL ADDRESS DELETED]



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