[Seasar-user:3151] Re: [S2JSF] カスタムコンポーネント用tldファイル

Hirotaka HONMA manhole
2006年 2月 6日 (月) 17:05:18 JST


本間@アークシステムです。

On 2/3/06, Hirotaka HONMA <[E-MAIL ADDRESS DELETED]> wrote:
> 本間です。
>
> Servlet仕様にあわせて、web.xmlの
> web-app/taglib/taglib-location に設定されているtldファイルを
> 読み込むようにしようと思います。
>
> # もしくはAutoRegisterライクに、指定したパス配下
> # ("/WEB-INF/tlds"とか)のtldを自動的に読み込むとか。

この修正を含んだSNAPSHOTをビルドしました。
http://hotchpotch.sourceforge.jp/temp/s2-jsf-1.0.14-SNAPSHOT.jar
http://hotchpotch.sourceforge.jp/temp/s2-jsf-1.0.14-SNAPSHOT-sources.jar
(前回同様、ビルドしなおしています)

■利用方法

1. WEB-INF/tlds/some.tldへtldファイルを配置
2. web.xmlへtaglib要素を追加

# web.xml
  <taglib>
    <taglib-uri>/some_uri</taglib-uri>
    <taglib-location>/WEB-INF/tlds/some.tld</taglib-location>
  </taglib>

taglib-locationは、実際に配置する箇所にします。

3. jsf.diconへエントリを追加

org.seasar.jsf.runtime.JsfConfigImplへinitMethodを追加。

# jsf.dicon
<initMethod name="addTaglibUri">
  <arg>"some"</arg>
  <arg>"http://somedomain/"</arg>
</initMethod>

第2引数はsome.tldのtaglib/uriとあわせます。

4. jsf.diconを修正

上部にある記述を変更します。

# jsf.dicon
<component class="org.seasar.jsf.runtime.ServletContextTaglibManagerImpl">
  <initMethod name="init"/>
  <destroyMethod name="destroy"/>
</component>

↓変更

<component class="org.seasar.jsf.runtime.CompositeTaglibManager">
  <initMethod name="addTaglibManager">
    <arg>
      <component class="org.seasar.jsf.runtime.ServletContextTaglibManagerImpl">
        <initMethod name="init"/>
        <destroyMethod name="destroy"/>
      </component>
    </arg>
  </initMethod>
  <initMethod name="addTaglibManager">
    <arg>
      <component class="org.seasar.jsf.runtime.WebappConfigTaglibManagerImpl">
        <initMethod name="init"/>
        <destroyMethod name="destroy"/>
      </component>
    </arg>
  </initMethod>
</component>



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