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

SYNOPSIS

<c:remove
var*="変数名"
scope="page|request|session|application"
/>

説 明

スコープに格納されている変数を除去します。このタグの動作は pageContext.removeAttribute(var,scope)Java™ API リファレンス を実行するのと同じです。

一時的に使用する変数は通常 page スコープで格納するため <c:remove> を明示的に呼び出す必要はありません。一時変数でもオブジェクトが大きくてなるべく早く切り離したい場合や、セッションなどの特定のスコープのオブジェクトを除去したい場合などに使用します。

参照: <c:set> 

属 性

var="変数名"
required
" 削除する変数の名前です。 EL は使用できません。
scope="page|request|session|application"
optional

削除対象の変数が格納されているスコープです。このスコープ以外の変数については名前が同じであっても除去されません。

scope 属性が省略されると PageContext#removeAttribute(var)Java™ API リファレンス が呼び出されます。この場合 page, request, session, application の順にスコープを検索し、最初に見つかった変数だけを削除します (場合によってこの動きは意図しないスコープの変数を削除するため注意する必要があります)。

使用例

新しく変数を設定します。実行結果は「hello, world」となります (未設定の null 値は何も出力されないため)。
JSP
<c:out value="${foo}" />
<c:set var="foo" value="hello, world" />
<c:out value="${foo}" />
スコープ内の既存の変数を上書きします。実行結果は「1 2」となります。
JSP
<% pageContext.setAttribute("foo", "1", PageContext.PAGE_SCOPE); %>
<c:out value="${foo}" />
<c:set var="foo" value="2" />
<c:out value="${foo}" />
<jsp:include> 先で使用する変数をあらかじめ設定しておきたい場合には request スコープを使用します。
JSP
<c:set var="foo" value="100" scope="request" />
<jsp:forward page="page.jsp" flush="true" />

// page.jsp
<c:out value="${foo}" />
Map に値を格納します。出力結果は「{bar=2}」となります。
JSP
<% pageContext.setAttribute("foo", new HashMap()); %>
<c:set target="${foo}" property="bar" value="${1+1}" />
<c:out value="${foo}" />
Bean のプロパティに値を設定します (Date が Bean かどうかは疑問ですが標準 API で適切な Bean が思いつかないので例として使用しています)。 Date#setYear(107), Date#setMonth(11) などが呼び出されて「2007/12/05 0:00:00 」という結果になります。
JSP
<% pageContext.setAttribute("foo", new Date()); %>
<c:set target="${foo}" property="year"    value="107" />
<c:set target="${foo}" property="month"   value="11" />
<c:set target="${foo}" property="date"    value="5" />
<c:set target="${foo}" property="hours"   value="0" />
<c:set target="${foo}" property="minutes" value="0" />
<c:set target="${foo}" property="seconds" value="0" />
<fmt:formatDate value="${foo}" type="both" />
CVS 2008/03/09