Minggu, 28 Juni 2015

Pertemuan 12 - JSTL (JSP Standard Tag Library)


 
JSTL adalah singkatan dari Java Standard Tag Library. JSTL merupakan library untuk JSP yang berisi tag-tag standard. JSTL merupakan halaman java yang berada dalam HTML (Java in HTML). Tag pada JSTL :
<%..........%> atau
<%=………….%>

Pada MVC, JSP merupakan View, yang mengurusi segala tampilan web, dilakukan dengan memisahkan antara tampilan kode HTML dan kode Java. Pada JSTL tidak perlu ada pengulangan atau kondisi looping.
JSTL dapat digunakan apabila dideklarasikan seperti dibawah ini pada bagian file JSP :
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Tujuan dari JSTL yaitu :
-            Mempermudah dalam perancangan halaman JSP
-            Memisahkan halaman kode html dan kode Java pada JSP

Jenis-jenis Tag Pada JSTL :

1.       Core (http://java.sun.com/jsp/jstl/core, prefix c)
Merupakan bagian inti, terdapat pada bagian perulangan seperti : If, Else, dan Switch Case ataupun iterasi dan kondisi.  Tag core menyediakan fungsi yang sangat berguna untuk setiap proyek web. Set core dapat dibagi menjadi sub kategori sebagai berikut:

- General Purpose Tags
<c:set>
Tag ini dapat mengatur variabel di dalam scope tertentu (untuk set value). Dan memiliki atribut:
1.        Value : nilai yang akan diatur ke dalam terget bean.
2.        Var : nama dari sebuah variabel yang akan di atur di dalam scope tertentu
3.        Scope: menjelaskan variabel scope yang dijelaskan oleh atribut var.

<c:out>
Tag ini digunakan untuk menampilkan atau melakukan pemanggilan hasil secara langsung kepada obyek yang sesuai dengan halaman output. Dengan kata lain, tag ini akan menuliskan kata yang tertulis dalam atribut value dan dalam bentuk non-XML tags.

<c:remove>
Tag ini digunakan untuk menghapus variabel yang telah dibuat. Tag ini memiliki dua atribut :
-       Scope: scope variabel yang akan di hapus
-       Var: nama variabel yang akan di hapus dari scope tertentu
Contoh :

- Iteration
Merupakan tag untuk perulangan yang terdiri dari : <forEach> dan <forTokens>
<c:forEach>
Tag yang digunakan pada perulangan untuk variabel dan pemanggilan output yang berupa integer. Contoh :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:forEach> Tag Example</title>
</head> <body>
<c:forEach var="i" begin="1" end="5">Item<c:out value="${i}"/><p>
</c:forEach>
</body>
</html>
  
<c:forTokens>
Tag ini digunakan dengan memasukkan langsung calue yang ingin ditampilkan. Terdapat delims (pemisah) karakter string. Contoh :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:forTokens> Tag Example</title>
</head>
<body>
<c:forTokens items="Zara,nuha,roshy" delims="," var="name">
<c:out value="${name}"/><p>
</c:forTokens>
</body>
</html>

- Conditionals
Tag yang fungsinya sama dengan standar if, else-if, yang ditemukan dalam standar Java. Terdapat dua set kondisional :
-       Tag <c:if> dan
-       Tag <c:choose> yang berelasi dengan tag <c:when> serta <c:otherwise>

<c:if>
Dieksekusi apabila pernyataan didalam body bernilai True.

<c:choose>, <c:when>, dan <c:otherwise>
Meemiliki cara kerja yang sama dengan kondisi pemilihan Switch Case.

2.       XML processing (http://java.sun.com/jsp/jstl/xml, prefix x)
Memiliki kaitan dengan dokumen XML
3.       SQL (http://java.sun.com/jsp/jstl/sql, prefix sql)
Memiliki kaitan dengan database prefix, yang mana tag ini adalah default(settingan) aslinya dan tidak dapat diubah. Dan bertugas dalam pengolahan data pada database
4.       Functions (http://java.sun.com/jsp/jstl/functions, prefix fn)
Biasanya digunakan untuk manipulasi String.
5.       Formatting (http://java.sun.com/jsp/jstl/fmt)
Digunakan untuk internasionalisasi sehingga web yang dihasilkan dapat diakses dengan versi banyak bahasa

Tahap-Tahap Pembuatan JSP Dengan JSTL :
1.        Tambahkan library (file .jar) ke dalam package libraries. Dan bila tidak tersedia pada library, maka kunjungi website Oracle dan download filenya.
2.        Tambahkan file JSP
3.        Tambahkan tag-tag JSTL. Terutama tag :  
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Dan letakkan sebelum <html>. Kemudian tulis kode java setelah <body> dan sebelum </body>

Contoh Kode Program pada JSTL :
Untuk melakukan looping, kita bisa menggunakan tag foreach dalam paket core. Dan untuk memformat tanggal dan angka, kita menggunakan tag formatDate dan formatNumber dalam paket fmt
Contoh kode program :
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<table>
    <tr>
        <th>No</th>
        <th>NPM</th>
        <th>Nama</th>
        <th>Tanggal Masuk</th>
        <th>IPK</th>
    </tr>

    <c:forEach var="mhs" items="${daftarMahasiswa}" varStatus="counter">
        <tr>
            <td><c:out value="${counter}" /></td>
            <td><c:out value="${mhs.npm}" /></td>
            <td><c:out value="${mhs.nama}" /></td>
            <td><fmt:formatDate value="${mhs.tanggalMasuk}" pattern="dd-MMM-yyyy"/></td>
            <td><fmt:formatNumber value="${mhs.ipk}" type="number" maxIntegerDigits="1"                         maxFractionDigits="2"/></td>
        </tr>
    </c:forEach>
</table>

Perbedaan JSTL dan Tag Bean Biasa :
Dengan Java Biasa:

Dengan JSTL :

Pada JSTL, tag yang digunakan lebih sedikit dibanding dengan java biasa. Pada JSTL hanya terdapat 1 baris tag pemrosesan looping, sedangkan pada java biasa terdapat 2 baris tag pemrosesan looping. 
 Jadi menggunakan JSTL lebih menghemat (memperpendek) penulisan koding, dibanding dengan java biasa.

0 komentar:

Posting Komentar