2012-02-03 11 views
0

私のJSPでは、4つのタグライブラリを使用しました。宣言は次のとおりです。複数のJSPタグライブラリに同じプレフィックスを使用させるにはどうすればいいですか?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 
<%@ taglib prefix="cms" uri="/WEB-INF/tags/cms/tag.tld"%> 

それぞれに固有の接頭辞があります。

しかし、私はそれらのすべてのための単一のプレフィックスを使用したいので、私はそれらを変更します。これは、エラーを報告

<%@ taglib prefix="cms" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix="cms" uri="http://java.sun.com/jsp/jstl/functions"%> 
<%@ taglib prefix="cms" uri="http://java.sun.com/jsp/jstl/fmt"%> 
<%@ taglib prefix="cms" uri="/WEB-INF/tags/cms/tag.tld"%> 

これを行う方法はありますか?

+0

明らかに懸念の分離の違反。非常に悪いアプローチ。 –

答えて

1

各taglibディレクティブは、TLDというタグライブラリディスクリプターの下にタグをインポートします。 TLDには、タグ名で識別されるタグのセットがあります。ここのタグ名はユニバーサルではありません。 2つのTLDに同じ名前のタグを付けることができます。そのため、TLDにはTLD URI(http://java.sun.com/jsp/jstl/core,http://java.sun.com/jsp/jstl/functions、...)以外の名前空間があります。

したがって、タグを使用している間に、どのTLDからタグをロードする必要があるのか​​を明らかにする必要があります。そして、すべてのタグの前にURLを与えることは難しく、読みにくいので、タグlibディレクティブの接頭辞の助けを借りて、URIに別名を付けます。

その理由はで、複数のTLDのに同じプレフィックスを付けることはできません。

+0

私は自分のtldファイルを作成し、それらを結合する必要があるようです。 – Freewind

1

同じJSP内の2つの異なるタグライブラリに同じタグプレフィックスを付けることはできません。タグプレフィックスは、どのタグライブラリを使用するか、どのクラスファイルを使用するかを指定します。タグの

各taglibには異なるタグ接頭語を付ける必要があります。

関連する問題