[mayaa-user:165] Re: idとXPathの同時利用

加藤 t_kato @ gluegent.com
2006年 4月 24日 (月) 15:58:33 JST


加藤です。

コミッタではありませんがちょうど触っていましたので。

mayaaはオリジナルノードに対するインジェクション仕様ノードを
1対1で割りあてるようですので複数のプロセッサを適用するということは
難しそうですが、IDとXPathのどちらを優先して適用させるかということ
であれば、mayaaのServiceProvider定義ファイルを入れ替えることで可能だと
思います。

具体的な手順としては、mayaaのソース、
mayaa/src-impl/org/seasar/mayaa/impl/provider/factory/org.seasar.mayaa.provider.ServiceProvider
を、自身のプロジェクトのソースフォルダ内に、
META-INF/org.seasar.mayaa.provider.ServiceProviderという名前でコピーします。
このファイルはXMLです。適当なXMLエディタで開いて、<templateBuilder> タグ内の
<resolver class="...EqualsIDInjectionResolver"/> と、
<resolver class="...XPathMatchesInjectionResolver"/> の定義順序を変更します。

以上でXPathが優先されるはずです。

ちなみに<templateBuilder>定義以外はmayaaのデフォルト定義に任せた方が良いので、
削除してしまった方が良いと思います。


--------------------------------------------------------->>
Gluegent,Inc. T.Kato
http://package.gluegent.com/~kato/signature.xml
---->> generate products and services with high added value


> 的場です。
> 
> 以下のようにしてXPathで複数のタグを同時に処理しようとしたのですが、idを指定して処理済のタグに対してはXPathで指定した処理が効かないようです。
> このような使い方は不可能でしょうか?
> 
> test.html:
> <html>
> <head>
> <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
> <title>テスト</title>
> </head>
> <body>
> <ul>
>   <li><a href="test.html" id="test">テスト1</a></li>
>   <li><a href="test.html">テスト2</a></li>
> </ul>
> </body>
> </html>
> 
> test.mayaa:
> <?xml version="1.0" encoding="UTF-8"?>
> <m:mayaa xmlns:m="http://mayaa.seasar.org" xmlns:ww="/webwork">
>   <m:echo xpath="//a">
>     <m:attribute name="target" value="_blank" />
>   </m:echo>
>   <m:echo id="test">
>     <m:write value="test" />
>   </m:echo>
> </m:mayaa>
> 
> 結果:
> <html>
> <head>
> <meta http-equiv="content-type" content="text/html; charset=UTF-8">
> <title>テスト</title>
> </head>
> <body>
> <ul>
>   <li><a href="test.html" id="test">test</a></li>
>   <li><a target="_blank" href="test.html">テスト2</a></li>
> </ul>
> </body></html>
> 
> バージョン:
> mayaa-1.1.0-beta3
> 
> --
> 的場辰徳
> matobat @ gmail.com
> http://d.hatena.ne.jp/matobat/
> _______________________________________________
> mayaa-user mailing list
> mayaa-user @ ml.seasar.org
> https://www.seasar.org/mailman/listinfo/mayaa-user



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