<c:import>
xmlns:c="http://java.sun.com/jsp/jstl/core"

SYNOPSIS

<c:import
url*="URI"
var="変数名"
varReader="変数名"
scope="page|request|session|application"
context="コンテキスト名"
charEncoding="文字エンコーディング"
>
<c:param> * -  URL で指定した呼び出し先でリクエストパラメータとして参照できる値を指定します.
varReader 属性を使用した場合、その Reader オブジェクトの有効範囲.
</c:import>

説 明

URL の内容を取得します。内容はこのタグの位置に埋め込まれるか (<jsp:include> の動作と同じ)、あるいは変数の値として参照することができます。

属 性

url="URI"
required

内容を取得する URL です。絶対 URL または相対 URL で指定することが出来ます。

絶対 URL (http://www.foo.com/bar.html など) を指定した場合は JSTL 内から通信を行って内容を取得するため効率が良くありません。絶対 URL は外部サイトの情報が必要な場合に限定して使用してください。

"../foo" や "foo/bar.html" などの相対パスでした場合、タグを記述している JSP の URL を基点とした相対パスを意味します。サーブレットの include 機能が使用されます。

/ から始まる相対 URL を指定した場合、context 属性が省略されていれば JSP が所属している Web アプリケーションルートからの位置を意味します。コンテキストの指定があればそのコンテキストの該当する URL を意味します。サーブレットの include 機能が使用されます。

いずれの形式でも URL が JSP やサーブレットなどを示している場合、その処理結果を取得することになります。

var="変数名"
optional
URL から取得した全内容を文字列として設定する変数の名前です。 varReaderm 属性と両方とも省略した場合、URL から取得した内容はこのタグの位置に埋め込まれます。
varReader="変数名"
optional

URL から取得した内容を java.io.Reader として設定する変数の名前です。var 属性と両方とも省略した場合、URL から取得した内容はこのタグの位置に埋め込まれます。

ここで指定した変数はこのタグの内部でのみ有効です。従って <x:parse などに Reader を渡す場合はこのタグの内部で記述します。これは Reader を確実にクローズするために範囲を限定する必要があるためです。

Jakarta Taglib 版 JSTL 1.1 実装では大きなファイルを読み込んでもこの変数のインスタンスが java.lang.StringReader でしたので、メモリの効率は期待できません。

scope="page|request|session|application"
optional
変数のスコープです。 page, request, session, application のいずれかを指定することが出来ます。
context="コンテキスト名"
optional

同一サーブレットコンテナ内の別のコンテキスト (Web アプリケーション) の内容を取得したい場合に指定します。この動作は ServletContext#getContext(context).getRequestDispatcher(url).forward(request,response) に相当します (サーブレットコンテナでクロスコンテキスト参照が許可されている必要があります)。

charEncoding="文字エンコーディング"
optional
URL から読み込む時の文字エンコーディングです。

内 容

varReader 属性を使用した場合、その Reader オブジェクトの有効範囲。 <x:parse> などに Reader オブジェクトを渡す場合はこのタグの内部で記述します。
URL で指定した呼び出し先でリクエストパラメータとして参照できる値を指定します。 <jsp:include><jsp:param> と等価です。

使用例

このタグの位置に foo.jsp の実行結果を埋め込んで出力します。
JSP
<c:import url="foo.jsp" />
JSP と同じディレクトリに存在する news.xml という名前の XML ファイルを読み込んで解析し、全ての記事の内容を出力します。
JSP
<c:import varReader="newssrc" url="news.xml" charEncoding="UTF-8">
    <x:parse var="news" doc="${newssrc}" />
</c:import>
<x:forEach select="$news/article">
    <x:out select="@date" />: <x:out select="." /><br>
</x:forEach>
news.xml
<?xml version="1.0"?>
<news>
    <article date="2007/12/01">とうとう師走に入りました。寒さが空腹に染みます。</article>
    <article date="2007/12/25">何もありませんでした。</article>
</news>
ページ全体を Google のトップページのものと置き換えます。
JSP
<@ page language="java" contentType="text/html;charset=UTF-8">
<@ taglib prefix="c" uri="http://java.sun.com/jstl/core" >
<c:import url="http://www.google.co.jp" />
CVS 2008/03/09