[mayaa-user:53] Re: 独自のプロセッサー
suga
ko.suga @ gmail.com
2005年 11月 30日 (水) 10:37:53 JST
suga です。
05/11/30 に 小野 心<shin @ hotcore.jp> さんは書きました:
> いつも、教えて君で申し訳御座いません。
> mayaaのポリシーに沿わないかも知れないのですが、
> 独自にプロセッサーを作成して利用したい場合には、
> どの様な定義が必要なのでしょうか?
独自プロセッサを作ることはポリシーに反しません。
発展的な使い方ではありますけど。
> /org/seasar/mayaa/impl/engine/processor/mayaa.mld
>
> と同等なファイルを作成する必要は有ると思うので
> すが、
>
> org.seasar.mayaa.provider.ServiceProvider
>
> の時と同じように、META-INFディレクトリーに入れて
> おけば認識されるのでしょうか?
MLD ファイルを探すロジックは、TLD ファイルと同じロジックです。
したがって、
WEB-INF/lib
jar内 META-INF/
classes/以下全ディレクトリ
などに置けば有効になります。
発展的な使い方ですが、HTML コンポーネントも MLD で定義することによって
プロセッサになります。
# このあたり、Web に載せるのは都合によりしばらく先になります。すみません。
# 正月明けまでにはひと通り形になっている予定です。
WEB-INF/lib/sample.mld として次の内容を定義したとします。
<library uri="http://mayaa.seasar.org/sample">
<processor name="hello"
class="org.seasar.mayaa.impl.engine.processor.InsertProcessor">
<description>sample component</description>
<property name="path" final="/sample_component.html" />
<property name="name" final="comp1" />
</processor>
</library>
# final はプロパティに変更不可な値を定義します。
このとき mayaa ファイルで下記のように書くことで、HTML コンポーネントの
/sample_component.html (name="comp1") がプロセッサとして動作します。
<m:mayaa xmlns:m="http://mayaa.seasar.org"
xmlns:s="http://mayaa.seasar.org/sample">
<s:hello m:id="message" />
</m:mayaa>
これらをまとめて jar ファイルを作り WEB-INF/lib に置けば、
再利用しやすい形でコンポーネント群をまとめられます。
xxxx.jar
+- META-INF/
+- sample.mld
+- sample_component.html
+- sample_component.mayaa
もちろん .mld ファイルの prosessor - class に独自プロセッサを指定すれば、
HTML コンポーネントではなく Java でできたプロセッサを使えます。
--
suga ( ko.suga @ gmail.com )
mayaa-user メーリングリストの案内