- ベストアンサー
web.xmlでtaglib-locationを設定する理由
- web.xmlでtaglib-locationを設定する理由は、タグライブラリの場所を指定するためです。
- タグライブラリを使用する際に、web.xmlに<taglib-location>なるものを以下のように記載する必要があります。
- これは、ライブラリファイルの場所を明示的に指定することで、アプリケーションが正しくタグライブラリを読み込むことができるようになります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
タグライブラリを使用するためのuriの指定方法は3つあります。 今回のようにweb.xmlに<taglib>を使い定義する方法を用いた場合ですが、<taglib-uri>に指定するのは実際の物理パスではなく、論理的な識別子です。 そして、<taglib-location>に書くのは<taglib-uri>に指定したuriにマッピングするTLDファイルの物理パスです。 つまり/tags/struts-htmlというuriを指定すると<taglib-location>に指定したtldファイルを参照するという仕組みになっています。 <taglib-uri>に定義した任意のURIを指定すれば<taglib-location>にあるtldファイルを参照してくれるというわけです。 <taglib-uri>には任意のURIを指定できるので好きなようにURIを設定できます。 ただし、一般的にはhttp://ドメイン名/~のようにURL形式で定義するのが推奨されているようです。
その他の回答 (2)
- erichgumma
- ベストアンサー率48% (13/27)
「web.xmlは、」 → 「タグディレクティブは、」 に訂正
- erichgumma
- ベストアンサー率48% (13/27)
>これを設定する理由はなんでしょうか? externalizing resources と呼ばれるものです。 一般的には、separation of concerns(日本語訳は「関心の分離」)によって、リコンパイルせずに後で内部情報を変更できるようにすることが目的ですが(ローカライゼーションとか)、このケースではセキュリティ確保という面もあります。 なお今のバージョンのStruts1(ver1.3.x)では、struts-taglib.jar をパス内のどこかにコピーしてやれば、web.xmlは、 <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> でOKです。(warファイルにする時には/WEB-INF下にコピーする必要がありますが) http://struts.apache.org/1.3.10/userGuide/configuration.html 5.4.3.1 Configure the Struts JSP Tag Libraries (Servlet 2.3/2.4)
お礼
ありがとうございます。 勉強になりました。
お礼
ありがとうございます。 よくわかりました。