JSP Expression Language (EL) membuat pengaksesan data yang disimpan di JavaBeans menjadi sangat sederhana. JSP EL dapat digunakan untuk membuat ekspresi aritmatika dan logika. Integer, bilangan floating point, string, konstanta true, false, dan null dapat digunakan dalam ekspresi JSP EL.
Biasanya, ketika Anda perlu menentukan nilai atribut dalam tag JSP, Anda cukup menggunakan string:
<jsp:setProperty name="box" property="perimeter" value="100"/>
JSP EL memungkinkan Anda menentukan ekspresi untuk mewakili nilai properti. Sintaks ekspresi sederhana adalah sebagai berikut:
${expr}
Diantaranya,
exprmengacu pada sebuah ekspresi. Operator umum di JSP EL adalah
"."dan
"[]". Kedua operator ini memungkinkan Anda mengakses beragam
JavaBeansProperti.
Misalnya saja di atas
<jsp:setProperti>Tag dapat ditulis ulang menggunakan bahasa ekspresi sebagai berikut:
<jsp:setProperty name="box" property="perimeter" value="${2*box.width+2*box.height}"/>
Ketika kompiler JSP melihat "
${}"Setelah memformat, ini menghasilkan kode untuk mengevaluasi ekspresi dan menghasilkan pengganti nilai ekspresi.
Anda juga dapat menggunakan bahasa ekspresi dalam teks templat label. Misalnya
<jsp:teks>Tag hanya memasukkan teks di dalamnya ke dalam output JSP:
<jsp:text><h1>Halo JSP!</h1></jsp:text>
sekarang, di
<jsp:teks>Gunakan ekspresi di badan tag, seperti ini:
<jsp:text>Keliling Kotak adalah: ${2*box.width + 2*box.height</jsp:text>
Tanda kurung dapat digunakan untuk mengatur subekspresi dalam ekspresi EL. Misalnya
${(1 + 2) * 3}sama dengan 9, tapi
${1+(2*3)}Sama dengan 7.
Untuk menonaktifkan evaluasi ekspresi EL, gunakan
halamanInstruksi akan
isELIgnoredNilai atribut diatur ke
BENAR:
<%@ halaman ELIdiabaikan ="benar|salah" %>
Dengan cara ini, ekspresi EL diabaikan. Jika diatur ke
PALSU, container akan mengevaluasi ekspresi EL.
Ekspresi EL mendukung sebagian besar operator aritmatika dan logika yang disediakan oleh Java:
Operator | menggambarkan |
---|---|
. | Kunjungi aKacangAtribut atau entri peta |
[] | Akses elemen array atau daftar tertaut |
( ) | Atur subekspresi untuk mengubah prioritas |
+ | menambahkan |
- | minus atau negatif |
* | mengambil |
/ atau div | menghapus |
% atau mod | Ambil cetakan |
== atau persamaan | Uji kesetaraan |
!= atau tidak | Uji jika tidak sama |
< atau lt | Uji jika kurang dari |
> atau gt | Uji apakah lebih besar dari |
<= atau le | Uji apakah kurang dari atau sama dengan |
>= org | Uji apakah lebih besar dari atau sama dengan |
&& atau dan | Uji logika DAN |
||. atau atau | Uji logika OR |
! atau tidak | tes negasi |
kosong | Uji nilai nol |
JSP EL memungkinkan Anda menggunakan fungsi dalam ekspresi. Fungsi-fungsi ini harus ditentukan di perpustakaan tag khusus. Sintaks penggunaan fungsi tersebut adalah sebagai berikut:
${ns:func(param1, param2, ...)}
ns mengacu pada namespace,
fungsiMengacu pada nama fungsinya,
param1Mengacu pada parameter pertama,
param2 mengacu pada parameter kedua, dan seterusnya. Misalnya ada fungsinya
fn: panjang, yang didefinisikan di perpustakaan JSTL, dapat digunakan untuk mendapatkan panjang string sebagai berikut:
${fn:length("Cari panjang saya")}
Untuk menggunakan fungsi dari perpustakaan tag apa pun, Anda perlu menginstal perpustakaan ini di server dan kemudian menggunakannya
<taglib>Tag menyertakan perpustakaan ini dalam file JSP.
JSP EL mendukung objek implisit yang tercantum dalam tabel berikut:
Objek tersembunyi | menggambarkan |
---|---|
cakupan halaman | cakupan halaman |
cakupan permintaan | cakupan permintaan |
sessionScope | ruang lingkup sesi |
cakupan aplikasi | ruang lingkup aplikasi |
param | Parameter objek Permintaan, string |
paramValues | Parameter objek Permintaan, kumpulan string |
tajuk | Tajuk HTTP, rangkaian |
Nilai header | Header HTTP, kumpulan string |
initParam | Parameter inisialisasi konteks |
kue | Nilai kue |
halamanKonteks | pageContext dari halaman saat ini |
Anda dapat menggunakan objek ini dalam ekspresi seperti halnya variabel. Selanjutnya akan diberikan beberapa contoh untuk lebih memahami konsep ini.
halamanKonteksObjeknya ada di JSP
halamanKonteksReferensi objek. Lulus
halamanKonteksObjek yang dapat Anda akses
memintaObyek. Misalnya, kunjungi
memintaString kueri yang diteruskan oleh objek, seperti ini:
${pageContext.request.queryString}
cakupan halaman,
cakupan permintaan,
sessionScope,
cakupan aplikasiVariabel digunakan untuk mengakses variabel yang disimpan di berbagai tingkat cakupan.
Misalnya, jika Anda perlu mengakses secara eksplisit
cakupan aplikasiBerlapis
kotakVariabel dapat diakses seperti ini:
applicationScope.box.
paramdan
paramValuesObjek yang digunakan untuk mengakses nilai parameter, dengan menggunakan
permintaan.getParameterMetode dan
permintaan.getParameterValuesMetode.
Misalnya, mengakses file bernama
memesan parameter, Anda dapat menggunakan ekspresi seperti ini:
${param.pesanan}, atau
${param["pesanan"]}.
Contoh berikut menunjukkan cara mengakses permintaan di
nama belakangParameter:
<%@ page import="java.io.*,java.util.*" %><% String title = "Mengakses Param Permintaan"; %><html><head><title><% out.print(title ); %></title></head><body><center><h1><% out.print(judul); align="center"><p>${param["nama pengguna"]}</p></div></body></html>
Objek param mengembalikan satu string, sementara
paramValuesObjek mengembalikan array string.
tajukdan
Nilai headerObjek digunakan untuk mengakses header informasi, dengan menggunakan
permintaan.getHeaderMetode dan
permintaan.getHeadersMetode.
Misalnya untuk mengakses file bernama
agen pengguna header informasi, Anda dapat menggunakan ekspresi seperti ini:
${header.agen-pengguna}, atau
${header["agen-pengguna"]}.
Contoh berikut menunjukkan cara mengakses
agen penggunaTajuk informasi:
<%@ page import="java.io.*,java.util.*" %><% String title = "Contoh Agen Pengguna"; %><html><head><title><% out.print(title ); %></title></head><body><center><h1><% out.print(judul); align="center"><p>${header["agen-pengguna"]}</p></div></body></html>
Hasil yang berjalan adalah sebagai berikut:
Objek header mengembalikan nilai tunggal, sedangkan headerValues mengembalikan array string.