Tidak seperti elemen arahan JSP, elemen tindakan JSP bekerja selama fase pemrosesan permintaan. Elemen tindakan JSP ditulis dalam sintaks XML.
Gunakan tindakan JSP untuk menyisipkan file secara dinamis, menggunakan kembali komponen JavaBean, mengarahkan pengguna ke halaman lain, dan menghasilkan kode HTML untuk plug-in Java.
Hanya ada satu sintaksis untuk elemen tindakan, dan ini sesuai dengan standar XML:
<jsp:nama_tindakan atribut="nilai" />
Elemen tindakan pada dasarnya adalah fungsi yang telah ditentukan sebelumnya. Spesifikasi JSP mendefinisikan serangkaian tindakan standar, yang menggunakan JSP sebagai awalan. Elemen tindakan standar yang tersedia adalah sebagai berikut:
| tata bahasa | menggambarkan |
|---|---|
| jsp: sertakan | Impor file saat halaman diminta. |
| jsp:useBean | Temukan atau buat instance JavaBean. |
| jsp:setProperti | Atur properti JavaBean. |
| jsp:dapatkanProperti | Keluarkan properti JavaBean. |
| jsp: maju | Kirim permintaan ke halaman baru. |
| jsp: plugin | Menghasilkan tag OBJECT atau EMBED untuk plug-in Java tergantung pada jenis browser. |
| jsp:elemen | Tentukan elemen XML dinamis |
| jsp:atribut | Tetapkan atribut elemen XML yang ditentukan secara dinamis. |
| jsp:tubuh | Menetapkan konten elemen XML yang ditentukan secara dinamis. |
| jsp:teks | Menggunakan template yang menulis teks di halaman dan dokumen JSP |
Semua elemen tindakan memiliki dua atribut: atribut id dan atribut cakupan.
atribut identitas:
Atribut id adalah pengidentifikasi unik dari elemen tindakan dan dapat direferensikan di halaman JSP. Nilai id yang dibuat oleh elemen tindakan dapat dipanggil melalui PageContext.
atribut cakupan:
Atribut ini digunakan untuk mengidentifikasi siklus hidup elemen tindakan. Atribut id berhubungan langsung dengan atribut scope, dan atribut scope menentukan umur objek id terkait. Atribut cakupan memiliki empat kemungkinan nilai: (a) halaman, (b) permintaan, (c) sesi, dan (d) aplikasi.
Elemen tindakan <jsp:include> digunakan untuk menyertakan file statis dan dinamis. Tindakan ini menyisipkan file tertentu ke dalam halaman yang sedang dibuat. Format sintaksnya adalah sebagai berikut:
<jsp: sertakan halaman = "URL relatif" flush = "benar" />
Direktif include telah diperkenalkan sebelumnya. Ini memperkenalkan file ketika file JSP diubah menjadi Servlet. Tindakan jsp:include di sini berbeda.
Berikut ini adalah daftar properti yang terkait dengan tindakan penyertaan.
| milik | menggambarkan |
|---|---|
| halaman | Alamat URL relatif yang terdapat di halaman. |
| menyiram | Properti Boolean yang menentukan apakah cache harus dibersihkan sebelum menyertakan sumber daya. |
Di bawah ini kita definisikan dua file date.jsp dan main.jsp, kodenya sebagai berikut:
kode file tanggal.jsp:
<p> Tanggal hari ini: <%= (java.util.Date()).toLocaleString()%></p> baru
kode file main.jsp:
<html><head><title>Contoh Tindakan penyertaan</title></head><body><center><h2>Contoh tindakan penyertaan</h2><jsp:include page="date.jsp" flush ="benar" /></center></body></html>
Sekarang letakkan dua file di atas di direktori root server dan akses file main.jsp. Hasil yang ditampilkan adalah sebagai berikut:
Tindakan penyertaan ContohTanggal hari ini: 12-Sep-2013 14:54:22
Tindakan jsp:useBean digunakan untuk memuat JavaBean yang akan digunakan di halaman JSP.
Fitur ini sangat berguna karena memungkinkan kita memanfaatkan penggunaan kembali komponen Java sekaligus menghindari hilangnya kemudahan yang membedakan JSP dari Servlets.
Sintaks paling sederhana untuk tindakan jsp:useBean adalah:
<jsp:useBean id="nama" />
Setelah kelas dimuat, kita dapat memodifikasi dan mengambil properti kacang melalui tindakan jsp:setProperty dan jsp:getProperty.
Berikut ini adalah daftar properti yang terkait dengan tindakan useBean.
| milik | menggambarkan |
|---|---|
| kelas | Tentukan nama paket lengkap kacang. |
| jenis | Menentukan tipe yang akan mereferensikan variabel objek. |
| nama kacang | Tentukan nama Bean melalui metode instantiate() pada java.beans.Beans. |
Sebelum memberikan contoh spesifik, mari kita lihat dulu elemen tindakan jsp:setProperty dan jsp:getProperty :
jsp:setProperty digunakan untuk mengatur properti objek Bean yang dipakai. Ada dua cara untuk menggunakannya. Pertama, Anda dapat menggunakan jsp:setProperty di luar (di belakang) elemen jsp:useBean, seperti ini:
<jsp:useBean id="myName" ... />...<jsp:setProperty name="myName" property="someProperty" .../>
Saat ini, apakah jsp:useBean menemukan Bean yang sudah ada atau membuat instance Bean baru, jsp:setProperty akan dieksekusi. Penggunaan kedua adalah dengan meletakkan jsp:setProperty di dalam elemen jsp:useBean, seperti yang ditunjukkan di bawah ini:
<jsp:useBean id="myName" ... >... <jsp:setProperty name="myName" property="someProperty" .../></jsp:useBean>
Saat ini, jsp:setProperty hanya akan dieksekusi saat membuat instance Bean baru. Jika instance yang sudah ada digunakan, jsp:setProperty tidak akan dieksekusi.
| milik | menggambarkan |
|---|---|
| nama | Atribut nama wajib diisi. Ini menunjukkan Bean mana yang akan dijadikan properti. |
| milik | Atribut properti diperlukan. Ini menunjukkan properti mana yang akan disetel. Ada penggunaan khusus: jika nilai properti adalah "*", itu berarti semua parameter permintaan yang namanya cocok dengan nama properti Bean akan diteruskan ke metode kumpulan properti yang sesuai. |
| nilai | Atribut value bersifat opsional. Properti ini digunakan untuk menentukan nilai properti Bean. Data string akan secara otomatis diubah menjadi angka, boolean, Boolean, byte, Byte, char, dan Karakter melalui metode valueOf standar di kelas target. Misalnya, nilai atribut tipe boolean dan Boolean (seperti "true") dikonversi oleh Boolean.valueOf, dan nilai atribut tipe int dan Integer (seperti "42") dikonversi oleh Integer.valueOf. Nilai dan param tidak dapat digunakan secara bersamaan, namun keduanya dapat digunakan. |
| param | param adalah opsional. Ini menentukan parameter permintaan mana yang digunakan sebagai nilai properti Bean. Jika permintaan saat ini tidak memiliki parameter, tidak ada yang akan dilakukan, dan sistem tidak akan meneruskan null ke metode set properti Bean. Oleh karena itu, Anda dapat membiarkan kacang memberikan nilai properti default itu sendiri, dan hanya mengubah nilai properti default ketika parameter permintaan secara eksplisit menentukan nilai baru. |
Tindakan jsp:getProperty mengekstrak nilai properti Bean yang ditentukan, mengubahnya menjadi string, dan kemudian mengeluarkannya. Format sintaksnya adalah sebagai berikut:
<jsp:useBean id="myName" ... />...<jsp:getProperty name="myName" property="someProperty" .../>
Tabel berikut adalah properti yang terkait dengan getProperty:
| milik | menggambarkan |
|---|---|
| nama | Nama properti Bean yang akan diambil. Kacang harus didefinisikan. |
| milik | Menunjukkan bahwa nilai properti Bean akan diekstraksi |
Dalam contoh berikut kami menggunakan Beans:
/* File: TestBean.java */tindakan paket; public class TestBean { private String message = "Tidak ada pesan yang ditentukan"; public String getMessage() { return(message } public void setMessage(String message) { this.message = pesan; }}Kompilasi contoh di atas dan buat file TestBean.class. Salin file ke direktori tempat server secara resmi menyimpan kelas Java, bukan ke direktori yang disediakan untuk kelas yang dapat dimuat secara otomatis setelah modifikasi (seperti: C:Apache-Tomcat -7.0.2 direktori webappsWEB-INFclassesaction, variabel CLASSPATH harus berisi jalur ini). Misalnya, untuk Java Web Server, beans dan semua kelas yang digunakan oleh beans harus ditempatkan di direktori class, atau dienkapsulasi ke dalam file jar dan ditempatkan di direktori lib, tetapi tidak boleh ditempatkan di bawah servlet. Berikut ini adalah contoh yang sangat sederhana. Fungsinya untuk memuat Bean dan kemudian mengatur/membaca properti pesannya.
Sekarang mari kita panggil kacang di file main.jsp:
<html><head><title>Menggunakan JavaBeans di JSP</title></head><body><center><h2>Menggunakan JavaBeans di JSP</h2> <jsp:useBean id="test" /> < jsp:setProperty name="test" property="message" value="Halo JSP..." /> <p>Mendapat pesan....</p> <jsp:getProperty name="test" property="message " /> </center></body></html>
Jalankan file di atas dan hasilnya adalah sebagai berikut:
Menggunakan JavaBeans dalam pesan JSPGot....Halo JSP...
Tindakan jsp:forward meneruskan permintaan ke halaman lain. Tag jsp:forward hanya memiliki satu atribut, halaman. Format sintaksnya adalah sebagai berikut:
<jsp:forward page="URL Relatif" />
Berikut ini adalah atribut yang terkait dengan forward:
| milik | menggambarkan |
|---|---|
| halaman | Atribut halaman berisi URL relatif. Nilai halaman dapat diberikan secara langsung atau dihitung secara dinamis selama permintaan. Ini bisa berupa halaman JSP atau Java Servlet. |
Kami menggunakan dua file dalam contoh berikut: date.jsp dan main.jsp.
Kode file date.jsp adalah sebagai berikut:
<p> Tanggal hari ini: <%= (java.util.Date()).toLocaleString()%></p> baru
kode file main.jsp:
<html><head><title>Contoh Tindakan maju</title></head><body><center><h2>Contoh tindakan maju</h2><jsp:forward page="date.jsp" / ></pusat></tubuh>
Sekarang letakkan dua file di atas di direktori root server dan akses file main.jsp. Hasil yang ditampilkan adalah sebagai berikut:
Tanggal hari ini: 12-Sep-2010 14:54:22
Tindakan jsp:plugin digunakan untuk menyisipkan elemen OBJECT atau EMBED yang diperlukan untuk menjalankan Java Applet melalui plug-in Java, bergantung pada jenis browser.
Jika plug-in yang diperlukan tidak ada, plug-in tersebut akan diunduh dan kemudian mengeksekusi komponen Java. Komponen Java dapat berupa applet atau JavaBean.
Tindakan plugin memiliki beberapa atribut yang sesuai dengan elemen HTML yang digunakan untuk memformat komponen Java. Elemen param dapat digunakan untuk meneruskan parameter ke Applet atau Bean.
Berikut ini adalah contoh umum penggunaan elemen aksi plugin:
<jsp:plugin type="applet" codebase="dirname" code="MyApplet.class" > <jsp:param name="fontcolor" value="red" /> <jsp:param name="background" value=" hitam" /> <jsp:fallback> Tidak dapat menginisialisasi Plugin Java </jsp:fallback> </jsp:plugin>
Jika Anda tertarik, Anda dapat mencoba menggunakan applet untuk menguji elemen tindakan jsp:plugin. Elemen <fallback> adalah elemen baru. Ketika komponen gagal, pesan kesalahan dikirim ke pengguna.
Elemen tindakan <jsp:elemen>, <jsp:attribute>, <jsp:body> mendefinisikan elemen XML secara dinamis. Dinamis sangat penting, artinya elemen XML dihasilkan secara dinamis pada waktu kompilasi, bukan statis.
Contoh berikut mendefinisikan elemen XML secara dinamis:
<%@page Language="java" contentType="text/html"%><html xmlns="http://www.w3c.org/1999/xhtml" xmlns:jsp="http://java.sun. com/JSP/Page"><head><title>Buat Elemen XML</title></head><body><jsp:element name="xmlElement"><jsp:attribute name="xmlElementAttr"> Nilai untuk atribut</jsp:attribute><jsp:body> Isi untuk elemen XML</jsp:body></jsp:element></body></html>
Kode HTML yang dihasilkan selama eksekusi adalah sebagai berikut:
<html xmlns="http://www.w3c.org/1999/xhtml" xmlns:jsp="http://java.sun.com/JSP/Page"> <head><title>Buat Elemen XML</ title></head><body><xmlElement xmlElementAttr="Nilai untuk atribut"> Isi untuk elemen XML</xmlElement></body></html>
Elemen tindakan <jsp:text> memungkinkan penggunaan templat untuk menulis teks di halaman dan dokumen JSP. Format sintaksisnya adalah sebagai berikut:
<jsp:teks>Data templat</jsp:teks>
Templat teks di atas tidak boleh berisi elemen lain, tetapi hanya dapat berisi teks dan ekspresi EL (Catatan: Ekspresi EL akan diperkenalkan di bab berikutnya). Harap dicatat bahwa dalam file XML Anda tidak dapat menggunakan ekspresi seperti ${whatever > 0} karena simbol > ilegal. Anda dapat menggunakan ekspresi ${whatever gt 0} atau nilai yang tertanam di bagian CDATA.
<jsp:teks><![CDATA[<br>]]></jsp:teks>
Jika Anda perlu mendeklarasikan DOCTYPE di XHTML, Anda harus menggunakan elemen tindakan <jsp:text>.
<jsp:text><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">]]></jsp:text>< head><title>jsp:aksi teks</title></head><body><books><book><jsp:text> Selamat datang di JSP Pemrograman</jsp:text></book></books></body></html>
Anda dapat mencoba contoh di atas untuk melihat perbedaan hasil eksekusi menggunakan <jsp:text> dan tidak menggunakan elemen action ini.