<c:set>

<c:out>は、変数に値を設定するJSTL(JSP標準タグライブラリ)タグである。

<c:set>タグの構文

変数に設定する値は、次のいずれかの方法で指定できる。

<c:set var="username" value="tsuka" />
<c:set var="username">tsuka</c:set>

<c:set>タグの属性

<c:set>タグには、次の属性を指定することができる。

property
プロパティ名又はMapのキー
scope

スコープ(変数の有効範囲)を指定する。

scope 変数の有効範囲
page JSPページ
request HTTPリクエスト
session HTTPセッション
application Webアプリケーション

変数の有効範囲に page スコープを指定すると、ひとつのページでだけ変数が有効となる。

page scope
Figure 1. page scope

変数の有効範囲に request スコープを指定すると、ひとつのリクエストの間は変数が有効となる。

request scope
Figure 2. request scope

変数の有効範囲に session スコープを指定すると、ひとつのセッションの間は変数が有効となる。

session scope
Figure 3. session scope

変数の有効範囲に application スコープを指定すると、ひとつのアプリケーションの間は変数が有効となる。

application scope
Figure 4. application scope
target
変数名を指定する。target属性とvar属性のどちらかを必ず指定する必要がある。
value
変数にセットする値を指定する。変数に設定する値を<c:set>と</c:set>の間に記述すれば、value属性は省略できる。
var
変数名を指定する。var属性とtarget属性のどちらかを必ず指定する必要がある。

<c:set>タグの使用例

変数に値を設定する例を次に示す。

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
  <head>
    <title>Core out tag</titile>
  </head>
  <body>
    <c:set var="username" value="佐藤愛桜" />
    <c:out value="${username}" />
  </body>
</html>

上記の例は次のように記述することもできる。

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
  <head>
    <title>Core out tag</titile>
  </head>
  <body>
    <c:set var="username">佐藤愛桜</c:set>
    <c:out value="${username}" />
  </body>
</html>

上記の内容をスクリプトレットで記述すると次のようになる。

<% pageContext.setAttribute("username", "佐藤愛桜"); %>

EL(式言語)と組み合わせた例を次に示す。

<c:set var="className" value="${status.count % 2 == 0 ? 'even' : 'odd'}" />

JSP

JSP (JavaServer Pages) には、他にも次のJSP標準タグライブラリ(JSTL)がある。

JSPには次のディレクティブがある。

JSPには次のアクションタグがある。