JSTL(JavaServer Pages Standard Tag Library) – core

1月 1, 2003 · Posted in JSTL · Comment 

Advertisement


JSTL coreとは

アプリケーションのコアとなる、よく利用される機能のライブラリ。変数の操作や条件分岐、繰り返しなどの基本的な機能が一通り定義されている。

JSTL coreタグ一覧

  • catch
  • choose
  • if
  • import
  • forEach
  • forTokens
  • out
  • otherwise
  • param
  • redirect
  • remove
  • set
  • url
  • when

catch

<c:catch var="catch_var">
    <%
    String str = null;
    str.substring(0, 1);
    %>
</c:catch>
<c:out value="${catch_var}"></c:out>

例外のtry-catch機構をカスタムタグで提供する。

結果

java.lang.NullPointerException

choose

<c:choose>
<c:when test="false">false</c:when>
<c:otherwise>other</c:otherwise>
</c:choose>

条件分岐の利用。if – elseif – else形式。

結果

other

if

<c:if test="true">
true
</c:if>
<c:if test="false">
false
</c:if>

単純な条件分岐の利用。

結果

true

import

<c:import url="import.txt" />

外部ファイルをインポートする。

import.txt

import!!!

結果

import!!!

forEach

<%
String[] for_each_array = {"array1","array2"};
request.setAttribute("for_each_array", for_each_array);
%>
<c:forEach items="${for_each_array}" var="value">
    <c:out value="${value}"/><br>
</c:forEach>

コレクションや配列に対して繰り返し処理を実行する。

結果

array1
array2

forTokens

<c:set var="token" value="value1,value2,value3"/>
<c:forTokens items="${token}" delims=","
    var="value" varStatus="i" begin="0" end="100" step="1">
    <c:out value="${value}"/><br>
</c:forTokens>

任意のtokenで区切られた文字列を、分解処理する。

結果

value1
value2
value3

out

<c:set var="x" value="10"/>
<c:set var="y" value="20"/>
<c:out value="${x}"/> + <c:out value="${y}"/> = <c:out value="${x + y}"/>

<br/>
<c:out value="sample"/>
<br/>
<c:out value="sampl<em>e</em>" escapeXml="true"/>
<br/>
<c:out value="sampl<em>e</em>" escapeXml="false"/>
<br/>
<c:out value="${outnull}" default="default!!"/>
<br/>

<%@page import="java.util.*"%>
<%
String[] array = {"array1","array2"};
request.setAttribute("array", array);

List list = new ArrayList();
list.add("list1");
list.add("list2");
request.setAttribute("list", list);

Map map = new HashMap();
map.put("map1", "map_value1");
map.put("map2", "map_value2");
map.put("map3", "map_value3");
request.setAttribute("map", map);
%>
<c:out value="${array[0]}"/><br>
<c:out value="${list[1]}"/><br>
<c:out value="${map['map1']}"/><br>

param.name:<c:out value="${param.name}"/><br>
paramValues.name[0]:<c:out value="${paramValues.name[0]}"/><br>
paramValues.name[1]:<c:out value="${paramValues.name[1]}"/><br>

様々な形式の変数を出力処理する。

結果

10 + 20 = 30
sample
sample
sample
default!!
array1
list2
map_value1

otherwise

chooseを参照。

param

redirectを参照。

redirect

<c:redirect url="http://www.yahoo.co.jp">
  <c:param name="param1" value="value1" />
  <c:param name="param2" value="value2" />
</c:redirect>

ページのリダイレクトを行う。

結果


http://www.yahoo.co.jp/?param1=value1&param2=value2

remove

<c:remove var="x" />

不要になったパラメータを削除する。

set

<c:set var="x" value="10"/>
<c:set var="y" value="20"/>
<c:out value="${x}"/> + <c:out value="${y}"/> = <c:out value="${x + y}"/>

変数の宣言と値の設定。

結果

10 + 20 = 30

url

<c:url value="http://www.yahoo.co.jp/" var="yahooUrl">
   <c:param name="search" value="MyName"/>
</c:url>
<c:out value="${yahooUrl}"></c:out>

URLのエンコード

結果


http://www.yahoo.co.jp/?search=MyName

when

chooseを参照。

JSTL(JavaServer Pages Standard Tag Library) – fmt

1月 1, 2003 · Posted in JSTL · Comment 

Advertisement


JSTL fmtとは

アプリケーションのロケールや日付や数値のフォーマットなどを扱うライブラリ。

JSTL fmtタグ一覧

requestEncoding

<fmt:requestEncoding value="UTF-8"/>

リクエストのエンコード指定を行う。

setLocale

<fmt:setLocale value="en_US" />

ロケールの指定を行う。

timeZone

<% request.setAttribute("date", new java.util.Date()); %>
<fmt:timeZone value="PDT">
    <fmt:formatDate value="${date}" type="both" dateStyle="full"  timeStyle="full"/><br>
</fmt:timeZone>
<fmt:timeZone value="GMT-8">
    <fmt:formatDate value="${date}" type="both" dateStyle="full"  timeStyle="full"/><br>
</fmt:timeZone>

タイムゾーンを指定する(タグ内)。

結果

2005年5月23日 5時57分20秒 GMT
2005年5月22日 21時57分20秒 GMT-08:00

setTimeZone

<fmt:setTimeZone value="GMT-8"/>

タイムゾーンを指定する(全体)。

bundle

<div class="block">
<fmt:bundle basename="user">
    <fmt:message key="name"/><br/>
</fmt:bundle>

user.properties

name=username

結果

username

setBundle

<fmt:setBundle basename="message" var="message"/>

Bundleリソースの設定

message

<fmt:message key="name" bundle="${message}"/><br/>
<fmt:message key="age" bundle="${message}"/>

message.properties

name=test
age=10

結果

test
10

param

-

formatNumber

<fmt:formatNumber value="123456789.0"/><br>
<fmt:formatNumber value="123456789.0" type="number"/><br>
<fmt:formatNumber value="123456789.0" type="currency" currencySymbol="\\"/><br>
<fmt:formatNumber value="123456789.0" type="currency" var="cur" />
<fmt:formatNumber value="123456789.0" groupingUsed="true"/><br>
<fmt:formatNumber value="123456789.0" groupingUsed="false"/><br>
<fmt:formatNumber value="123456789.0" maxIntegerDigits="6" maxFractionDigits="2"/><br>
<fmt:formatNumber value="123456789.0" minIntegerDigits="3" minFractionDigits="6"/>

数値を指定フォーマットに変換する。

結果

123,456,789
123,456,789
\ 123,456,789.00
123,456,789
123456789
456,789
123,456,789.000000

parseNumber

<fmt:parseNumber value="${cur}" type="currency" integerOnly="true" />

文字列や変数を解析し、数値のオブジェクトを生成する。

結果

123456789

formatDate

<% request.setAttribute("date", new java.util.Date()); %>
<fmt:formatDate value="${date}" type="date" dateStyle="short"  timeStyle="short"/><br>
<fmt:formatDate value="${date}" type="time" dateStyle="short"  timeStyle="short"/><br>
<fmt:formatDate value="${date}" type="both" dateStyle="short"  timeStyle="short"/><br>
<fmt:formatDate value="${date}" type="both" dateStyle="medium" timeStyle="medium"/><br>
<fmt:formatDate value="${date}" type="both" dateStyle="long"   timeStyle="long"/><br>
<fmt:formatDate value="${date}" type="both" dateStyle="full"   timeStyle="full"/><br>
<fmt:formatDate value="${date}" pattern="yyyy年M月d日 h時m分"/><br>
<fmt:formatDate value="${date}" pattern="yyyy年M月d日 h時m分" var="var_date" scope="page" /><br>
<c:out value="${var_date}"/>

日付のフォーマット処理を行う。

結果

05/05/23
14:57
05/05/23 14:57
2005/05/23 14:57:20
2005/05/23 14:57:20 JST
2005年5月23日 14時57分20秒 JST
2005年5月23日 2時57分

2005年5月23日 2時57分

parseDate

<fmt:formatDate value="${date}" type="both" dateStyle="full" timeStyle="full" var="formatted"/>
<fmt:parseDate value="${formatted}" type="both" dateStyle="full" timeStyle="full" var="parsedDateTime"/>
<c:out value="${parsedDateTime}"/>

文字列や変数を解析し、日付オブジェクトを生成する。

結果

Mon May 23 14:57:20 JST 2005

JSTL(JavaServer Pages Standard Tag Library)

1月 1, 2003 · Posted in JSTL · Comment 

Advertisement


JSTLとは

JSTL(JavaServer Pages Standard Tag Library)とは、JSPでよく利用される汎用的なカスタムタグを纏めたライブラリである。

変数の設定・参照やリソース値の読み込みなどを、タグを書くだけで利用できるようになる。

概要

http://java.sun.com/products/jsp/jstl/

実装の入手

http://jakarta.apache.org/taglibs/index.html

API Document

http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html

タグ一覧