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

SYNOPSIS

<c:url
value*="URI"
context="コンテキスト名"
var="変数名"
scope="page|request|session|application"
>
<c:param> * -  URL に追加するリクエストパラメータを指定します.
</c:url>

説 明

URL にコンテキスト名と URL エンコードされたリクエストパラメータを追加した文字列を組み立てます。

<c:url>
<c:url value="/foo/bar.jsp">
    <c:param name="name" value="${value}" />
    …
</c:url>
参照: <c:param> 

属 性

value="URI"
required

処理対象の URL です。絶対 URL または相対 URL を指定することが出来ます。 context 属性を指定した場合は必ず / から始まる必要があります。

context="コンテキスト名"
optional

別の Web アプリケーションに対する URL を構築するために使用します。値は / で始める必要があります。

Tomcat 6.0 では対象の Web アプリケーションが存在しなくてもエラーになりません。

var="変数名"
optional

リクエストパラメータを追加した URL 文字列を格納する変数名です。省略した場合は結果をこのタグの位置に出力します。

scope="page|request|session|application"
optional

変数のスコープです。 page, request, session, application のいずれかを指定できます。

内 容

URL に追加するリクエストパラメータを指定します。パラメータ値に日本語などが混在する場合の URL エンコーディングは、その JSP の出力エンコーディング (contentTypecharset 属性) に依存します。

使用例

リクエストパラメータを指定して URL を構築します。
JSP
<%@ page language="java"
         contentType="text/html;charset=UTF-8"
         pageEncoding="UTF-8" session="false" %>
<%@ taglib prefix="c" uri="/WEB-INF/tld/c.tld" %>
<html>
<body>
<c:url value="/com.jsp">
    <c:param name="foo" value="あいうえお" />
</c:url>
</body>
</html>
先頭にコンテキストパスが付属し、URL エンコードされたパラメータが連結されます (このサンプル実行環境のコンテキストパスは /sampleweb です)。日本語の値は JSP の出力エンコーディング UTF-8 でエンコードされています。
結果
<html>
<body>
/sampleweb/com.jsp?foo=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
</body>
</html>
上記の page ディレクティブを contentType="text/html;charset=Windows-31J" と書き換えると以下のように結果が変わります。
結果
<html>
<body>
/sampleweb/com.jsp?foo=%82%a0%82%a2%82%a4%82%a6%82%a8
</body>
</html>
CVS 2008/03/09