Java Beans
5.4 Mengeset Nilai Property Java Bean
Meskipun javabean ekivalen dengan membangun sebuah object, tapi dia mempunyai option tambahan yang membuatnya lebih powerfull. Kita dapat menentujan scope yang mendefinisikan ruang batas dari obyek yang akan dibuat. Bisa saja scope bukan hanya pada page ini saja, tapi bisa lebih jauh. Jika ini dapat dishare tentunya akan sangat berguna, jadi kita akan membuat object baru jika dan hanya jika tidak memang benar benar tidak ada yang id dan scopenya sama.
5.3 Mengambil Nilai Property Java Bean
Dalam beberapa kasus mungkin kita ingin variable lokal kita mempunyai tipe yang sama sebagai object yang dibuat. Cara pengaksesan javabean adalah memakai sintax jsp:getproperty. Contoh pengaksesan sbb :
<jsp:getProperty name=”book1” propery=”title” />
ekivalen dengan
<%= book1.getTitle() %>
5.4 Mengeset Nilai Property Java Bean
Untuk memodifikasi properti menggunakan sintax jsp:setProperty . Action ini mempunyai beberapa bentuk yang berbeda, tapi untuk yang paling simple perlu tiga attribut yaitu : name, property dan valuenya. Contoh sintax sederhananya adalah sbb :
<jsp:setProperty name=”book1” propery=”title” value=”Core Web Programming”/>
ekivalen dengan :
<%= book1.setTitle(“Core Web Programmming”) %>
Berikut ini adalah contoh sederhana Java Bean dengan JSP:
package coreservlets;
/** Contoh Java Bean dengan satu properti bertipe String
* yang bernama message
*/
public class StringBean {
private String message = "No message specified";
public String getMessage() { return(message);
}
public void setMessage(String message) { this.message = message;
} }
Listing 4.1 StringBean.java
Dan pengaksesannya memakai JSP adalah sbb :
‘13 5 Pemrograman Web Enterprise Pusat Bahan Ajar dan eLearning
Bagus Priambodo ST MTI. http://www.mercubuana.ac.id
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
class="coreservlets.StringBean"/>
<OL>
Listing 4.2 File JSP untuk StringBean
Berikut ini adalah contoh program pemakaian set dan get properti javabean:
package coreservlets;
/** Bean sederhana untuk mengilustrasikan berbagai macam
* bentuk jsp:setProperty.
*/
public class SaleEntry {
private String itemID = "unknown";
private double discountCode = 1.0;
public void setItemID(String itemID) {
public double getDiscountCode() { return(discountCode);
}
public void setDiscountCode(double discountCode) { this.discountCode = discountCode;
public void setNumItems(int numItems) { this.numItems = numItems;
private double roundToPennies(double cost) { return(Math.floor(cost*100)/100.0);
Listing 4.3 SaleEntry.java
Dan pengaksesannya memakai JSP adalah sebagai berikut :
‘13 7 Pemrograman Web Enterprise Pusat Bahan Ajar dan eLearning
Bagus Priambodo ST MTI. http://www.mercubuana.ac.id
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>Using jsp:setProperty</TITLE>
</HEAD>
Integer.parseInt(request.getParameter("numItems"));
} catch(NumberFormatException nfe) {}
Listing 4.4 File JSP untuk SaleEntry
Untuk menjalankan program akses url dengan cara sebagai berikut:
http://localhost:8080/process/SaleEntry1.jsp?itemID=a1234&numItems=11&discountCode=
0.95
Perhatikan Listing 4.4 diatas digunakan ekspresi JSP untuk memberikan nilai pada atribut value. Nilai yang diperoleh dari pengambilan parameter adalah bernilai String. Bagaimana bila nilai hasil pengambilan parameter tersebut akan diberikan pada atribut yang bertipe numerik? Diperlukan konversi tipe data seperti yang dicontohkan pada atribut discountCode dan numItems diatas. Ingat method getParameter(String param) akan mengembalikan nilai String.
5.4 Percobaan
1. Tuliskan kembali program di atas dan amati output yang dihasilkan.
2. Tulis Program di bawah ini amati output apa yang dihasilkan.
Listing 4.5 dan Listing 4.6 adalah alternatif dari praktikum Listing 4.4.
Perhatikan bahwa pada alternatif ini tidak diperlukan konversi tipe data.
‘13 9 Pemrograman Web Enterprise Pusat Bahan Ajar dan eLearning
Bagus Priambodo ST MTI. http://www.mercubuana.ac.id
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Menggunakan jsp:setProperty</TITLE>
</HEAD>
<BODY>
<TABLE BORDER=5 ALIGN="CENTER">
<TR><TH CLASS="TITLE">
Using jsp:setProperty</TABLE>
<jsp:useBean id="entry" class="cwp.SaleEntry" />
<jsp:setProperty name="entry"
property="itemID"
param="itemID" />
<jsp:setProperty name="entry"
property="numItems"
param="numItems" />
<%-- WARNING! JDK 1.0.1 dan Java Web Server
mempunyai bug yang menyebabkan kegagalan konversi tipe data
--%>
<jsp:setProperty name="entry"
property="discountCode"
param="discountCode" />
<BR>
<TABLE ALIGN="CENTER" BORDER=1>
<TR CLASS="COLORED">
<TH>Item ID<TH>Unit Price<TH>Number Ordered<TH>Total Price
<TR ALIGN="RIGHT">
<TD><jsp:getProperty name="entry" property="itemID" />
<TD>$<jsp:getProperty name="entry" property="itemCost" />
<TD><jsp:getProperty name="entry" property="numItems" />
<TD>$<jsp:getProperty name="entry" property="totalCost" />
</TABLE>
</BODY>
</HTML>
Listing 4.5 Alternatif pertama file JSP untuk SaleEntry
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
Contoh penggunaan jsp:setProperty -->
<HTML>
<HEAD>
<TITLE>Using jsp:setProperty</TITLE>
<LINK REL=STYLESHEET
HREF="JSP-Styles.css"
TYPE="text/css">
</HEAD>
<BODY>
<TABLE BORDER=5 ALIGN="CENTER">
<TR><TH CLASS="TITLE">
Using jsp:setProperty</TABLE>
<jsp:useBean id="entry" class="cwp.SaleEntry" />
<%-- WARNING! JDK 1.0.1 dan Java Web Server mempunyai bug yang menyebabkan
<jsp:setProperty name="entry" property="*" />
<BR>
<TABLE ALIGN="CENTER" BORDER=1>
<TR CLASS="COLORED">
<TH>Item ID<TH>Unit Price<TH>Number Ordered<TH>Total Price
<TR ALIGN="RIGHT">
<TD><jsp:getProperty name="entry" property="itemID"
/>
<TD>$<jsp:getProperty name="entry"
property="itemCost" />
<TD><jsp:getProperty name="entry"
property="numItems" />
<TD>$<jsp:getProperty name="entry"
property="totalCost" />
</TABLE>
</BODY>
</HTML>
Listing 4.6 Alternatif kedua file JSP untuk SaleEntry
‘13 11 Pemrograman Web Enterprise Pusat Bahan Ajar dan eLearning
Bagus Priambodo ST MTI. http://www.mercubuana.ac.id
3. Tulis Program di bawah ini dan amati hasil percobaan di bawah ini.
package coreservlets;
/** Simple bean to illustrate sharing beans through
* use of the scope attribute of jsp:useBean.
*/
public class AccessCountBean { private String firstPage;
private int accessCount = 1;
public String getFirstPage() { return(firstPage);
}
public void setFirstPage(String firstPage) { this.firstPage = firstPage;
}
public int getAccessCount() { return(accessCount++);
} }
Listing 4.7 AccessCountBean.java
4. Dan pengaksesannya memakai JSP adalah sebagai berikut :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
"SharedCounts2.jsp">SharedCounts2.jsp</A>, and <A HREF="SharedCounts3.jsp">
Listing 4.8 File JSP untuk AccessCountBean
‘13 13 Pemrograman Web Enterprise Pusat Bahan Ajar dan eLearning
Bagus Priambodo ST MTI. http://www.mercubuana.ac.id
5. Simpan Listing 4.9 di package com.chocolove.
/* paket dari class */
package com.chocolove;
public class CounterBean {
int count = 3; /* nilai awal properti */
Listing 4.9 CounterBean.java
Listing 4.10 File JSP untuk CounterBean
<html>
<head><title>JSP</title></head>
<body> <jsp:useBean id="cacah"
class="com.chocolove.CounterBean"
scope="page">
Nilai awal, langsung dari Action getProperty tanpa set lewat JSP :
<jsp:getProperty name="cacah"
property="count" /><br>
<jsp:setProperty name="cacah"
property="count" value="8" />
</jsp:useBean>
<%
out.print("Nilai setelah diset dengan setProperty cacah.getCount
: "+()); cacah.setCount(5);
cacah.increaseCount();
out.println("<br>");
out.println("Nilai setelah dicacah :"+cacah.getCount());
%>
<br>Nilai dari Action getProperty :
<jsp:getProperty name="cacah" property="count" /><br>
</body>
</html>
‘13 15 Pemrograman Web Enterprise Pusat Bahan Ajar dan eLearning
Bagus Priambodo ST MTI. http://www.mercubuana.ac.id
Latihan
1. Terangkan secara ringkas cara pengaksesan properti Java Bean.
2. Terangkan secara ringkas cara seting properti Java Bean.
3. Amati program-program pada dasar teori di atas output apa yang akan dihasilkan jika program diatas akan dijalankan
4. Buat Java Bean yang memiliki properti sebagai berikut:
a. noKTP : String b. nama : String c. menikah : boolean d. umur : int
6. Buat file JSP yang digunakan untuk mengeset dan menampilkan semua properti Java Bean yang telah dibuat pada percobaan 4.1.
7. Buatlah package cwp. Simpan Listing 4.11 di package cwp
Daftar Pustaka
Hans Bergsten, . 2002. JavaServer Pages™, 2nd Edition. O'Reilly Yuliana, eepis-its.edu
.