[10] Java Standard Tag Library (JSTL)
JSTL
JSTL adalah singkatan dari Java Standard Tag Library. JSTL adalah
seperangkat tag di luar tag standar HTML yang bisa kita gunakan dalam file JSP.
Tujuan utama
JavaServer Pages Template Library (JSTL) adalah mempermudah kehidupan perancang
halaman JSP. Bagi developer, JSTL membantu menciptakan halaman JSP yang rapi,
tidak banyak berbaur antara kode HTML dan kode Java, sehingga halaman JSP lebih
mudah dimengerti dan dikelola.
Bila kita menggunakan Maven, konfigurasi dependensinya adalah:
groupId :
javax.servlet
artifactId : jstl
version : 1.2
Agar JSTL bisa digunakan, kita harus mendeklarasikannya dulu di bagian atas
file JSP seperti ini:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
%>
JSTL memiliki beberapa tag, yaitu :
Core Tag
Area
|
Function
|
Tags
|
Prefix
|
Core
|
Variable support
|
remove
set
|
c
|
Flow control
|
choose
when
otherwise
forEach
forTokens
if
|
||
URL management
|
import
param
redirect
param
url
param
|
||
Miscellaneous
|
catch
out
|
<%@ taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core"
%>
Variable Support Tags
Set tag menetapkan nilai variabel EL atau milik variabel EL di salah satu
lingkup JSP (halaman, permintaan, sesi, atau aplikasi). Jika variabel tidak
sudah ada, itu dibuat.
<c:set var="foo" scope="session"
value="..."/>
JSP EL variabel atau properti dapat diatur baik dari nilai atribut:
<c:set var="foo">
...
</c:set>
Flow Control Tags in the Core Tag Library
Untuk melaksanakan aliran kontrol logika, penulis halaman umumnya harus
resor untuk menggunakan scriptlets. Sebagai contoh, scriptlet berikut ini
digunakan untuk iterate melalui keranjang belanja:
<%
Iterator i =
cart.getItems().iterator();
while (i.hasNext()) {
ShoppingCartItem item =
(ShoppingCartItem)i.next();
...
%>
<tr>
<td
align="right" bgcolor="#ffffff">
${item.quantity}
</td>
...
<%
}
%>
URL Tags
Oleh karena itu, tag impor adalah sederhana, cara umum untuk mengakses
sumber daya berbasis URL, yang isinya kemudian dapat dimasukkan dan atau diolah
di dalam halaman JSP. Misalnya, dalam XML Tag Library, impor digunakan untuk
membaca dalam dokumen XML yang berisi informasi buku dan menetapkan konten ke
xml variabel scoped:
<c:import url="/books.xml" var="xml" />
<x:parse doc="${xml}" var="booklist"
scope="application"
/>
Miscellaneous Tags
Tag out mengevaluasi ekspresi dan output hasil evaluasi ke objek JspWriter
saat ini. Sintaks dan atribut adalah sebagai berikut:
<c:out value="value" [escapeXml="{true|false}"]
[default="defaultValue"]
/>
XML Tag Library
Tag JSTL XML menyediakan cara JSP-sentris menciptakan dan memanipulasi
dokumen XML. Berikut ini adalah sintaks untuk memasukkan JSTL XML perpustakaan
di JSP Anda.
<%@ taglib prefix="x"
uri="http://java.sun.com/jsp/jstl/xml"
%>
Area
|
Function
|
Tags
|
Prefix
|
XML
|
Core
|
out
parse
set
|
x
|
Flow control
|
choose
when
otherwise
forEach
if
|
||
Transformation
|
transform
param
|
XML Flow Control Tags
XML flow control tags sejajar dengan yang dijelaskan dalam Flow Control
Tags di Core Tag Library untuk aliran data XML.
Halaman JSP tut-install / javaeetutorial5 / contoh / web / bookstore4 / web
/ buku / bookcatalog.jsp menggunakan tag forEach untuk menampilkan semua buku
yang terdapat dalam daftar buku sebagai berikut:
<x:forEach
var="book"
select="$applicationScope:booklist/books/*">
<tr>
<c:set var="bookId">
<x:out
select="$book/@id"/>
</c:set>=
<td bgcolor="#ffffaa">
<c:url var="url"
value="/bookdetails" >
<c:param
name="bookId" value="${bookId}" />
<c:param
name="Clear" value="0" />
</c:url>
<a href="${url}">
<strong><x:out
select="$book/title"/>
</strong></a></td>
<td bgcolor="#ffffaa"
rowspan=2>
<c:set
var="price">
<x:out
select="$book/price"/>
</c:set>
<fmt:formatNumber
value="${price}" type="currency"/>
</td>
<td bgcolor="#ffffaa"
rowspan=2>
<c:url var="url"
value="/catalog" >
<c:param name="Add"
value="${bookId}" />
</c:url>
<p><strong><a
href="${url}">
<fmt:message
key="CartAdd"/> </a>
</td>
</tr>
<tr>
<td bgcolor="#ffffff">
<fmt:message
key="By"/> <em>
<x:out
select="$book/firstname"/>
<x:out
select="$book/surname"/></em></td></tr>
</x:forEach>
Transformation Tags
Tag Transformasi berlaku untuk transformasi, yang ditentukan oleh
stylesheet XSLT yang ditetapkan oleh XSLT atribut, untuk dokumen XML,
ditentukan oleh doc atribut. Jika atribut doc tidak ditentukan, masukan dokumen
XML dibaca dari konten body tag.
Param sub tag dapat digunakan bersama dengan transformasi untuk mengatur
parameter transformasi. Atribut nama dan nilai yang digunakan untuk menentukan
parameter. Nilai atribut opsional. Jika tidak ditentukan, nilai diambil dari
tubuh tag.
Formatting Tags
Tag format JSTL digunakan untuk memformat dan menampilkan
teks, tanggal, waktu, dan nomor untuk situs web internasionalisasi.
JSTL menyediakan satu set tag untuk nomor dan tanggal lokal-sensitif
parsing dan format.
<%@
taglib prefix="fmt"
uri="http://java.sun.com/jsp/jstl/fmt"
%>
Example :
<jsp:useBean
id="now" class="java.util.Date" />
<jsp:setProperty
name="now" property="time"
value="${now.time + 432000000}"
/>
<fmt:message
key="ShipDate"/>
<fmt:formatDate value="${now}"
type="date"
dateStyle="full"/>.
SQL Tag
Library
JSTL Library tag SQL memberikan tag untuk berinteraksi
dengan database relasional (RDBMSs) seperti Oracle, mySQL, atau Microsoft SQL
Server.
Tag untuk melakukan permintaan query SQL yang mengembalikan hasil set.
Untuk query SQL parameter, Anda menggunakan tag param bersarang di dalam tag
query.
<%@ taglib prefix="sql"
uri="http://java.sun.com/jsp/jstl/sql"
%>
Example :
<c:set
var="bid" value="${param.Add}"/>
<sql:query
var="books" >
select * from PUBLIC.books where id = ?
<sql:param value="${bid}"
/>
</sql:query>
Functions Tags
Tag format JSTL digunakan untuk memformat dan menampilkan
teks, tanggal, waktu, dan nomor untuk situs web internasionalisasi.
<%@ taglib prefix="fn"
uri="http://java.sun.com/jsp/jstl/functions"
%>
JSTL functions are
concerned with string manipulation :
toUpperCase, toLowerCase: Changes the capitalization of a string
substring, substringBefore, substringAfter: Gets a subset of a string
trim: Trims white space from a string
replace: Replaces characters in a string
indexOf, startsWith, endsWith, contains, containsIgnoreCase: Checks whether a string contains another
string
split: Splits a string into an array
join: Joins a collection into a string
escapeXml: Escapes XML characters in a string
