5

私は自分のサイトにsitemeshデコレータを実装しようとしています。彼らのサイトの例には、デコレータファイルのtaglib部分のサイトにリンクする完全なURIがあります。

<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>

これは、私のサイトがそのサイトにアクセスできることに依存していることを意味しますか?外の世界にアクセスできないイントラネット内に展開したいからです。

ありがとう

4

3 に答える 3

8

いいえ、違います。で宣言されたURIは、タグライブラリ記述子で宣言されたURI(または、コンテナが実装するJSPバージョンによっては、taglibで宣言されたURI)と一致する限り、ローカルで解決されます。web.xml

詳細については、 JavaEEチュートリアルを参照してください。

于 2009-11-27T00:04:56.337 に答える
4

いいえ。URIはユニバーサルリソース識別子であり、ロケーター(URL)ではありません。HashMapこれは、キーがaまたはHashtableJavaで値を設定/取得するために使用されるのと同じように、URIがtaglibsの内部レジストリ内の各taglibを一意に識別するために使用されることを意味します。

SunのWebアプリケーション仕様によると、アプリケーションがロード/呼び出すことができる実際のタグライブラリへのURIの解決は、次の順序で行われます。

  1. 指定されたURIを含むweb.xml一致するタグがないかファイルを確認し、タグに従ってTLDを実際にロードします。taglibtaglib-location
  2. #1と一致するものが見つからなかった場合はMETA-INF、アプリケーション内のすべてのJARのディレクトリで、指定されたURIを含むTLDを再帰的にチェックします。
于 2009-11-27T00:17:45.783 に答える
-1

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" >

ここで、uri属性値はコンテナーが理解できる場所に解決され、prefix属性はコンテナーにマークアップのどのビットがカスタムアクションであるかを通知します。

于 2014-08-22T10:04:54.903 に答える