JSP - Tindakan

Pada bab ini, kita akan membahas Tindakan di JSP. Tindakan ini menggunakan konstruksi dalam sintaks XML untuk mengontrol perilaku mesin servlet. Anda dapat memasukkan file secara dinamis, menggunakan kembali komponen JavaBeans, meneruskan pengguna ke halaman lain, atau membuat HTML untuk plugin Java.

Hanya ada satu sintaks untuk elemen Action, karena sesuai dengan standar XML -

<jsp:action_name attribute = "value" />

Elemen aksi pada dasarnya adalah fungsi yang telah ditentukan sebelumnya. Tabel berikut mencantumkan tindakan JSP yang tersedia -

S.No. Sintaks & Tujuan
1

jsp:include

Termasuk file pada saat halaman tersebut diminta.

2

jsp:useBean

Menemukan atau membuat instance JavaBean.

3

jsp:setProperty

Setel properti JavaBean.

4

jsp:getProperty

Menyisipkan properti JavaBean ke dalam output.

5

jsp:forward

Meneruskan pemohon ke halaman baru.

6

jsp:plugin

Menghasilkan kode khusus browser yang membuat tag OBYEK atau EMBED untuk plugin Java.

7

jsp:element

Mendefinisikan elemen XML secara dinamis.

8

jsp:attribute

Mendefinisikan atribut elemen XML yang didefinisikan secara dinamis.

9

jsp:body

Mendefinisikan tubuh elemen XML yang didefinisikan secara dinamis.

10

jsp:text

Digunakan untuk menulis teks template di halaman dan dokumen JSP.

Atribut Umum

Ada dua atribut yang sama untuk semua elemen Action: the id atribut dan scope atribut.

Atribut id

Atribut id secara unik mengidentifikasi elemen Tindakan, dan memungkinkan tindakan dirujuk di dalam halaman JSP. Jika Action membuat sebuah instance dari sebuah objek, nilai id dapat digunakan untuk mereferensikannya melalui objek implisit PageContext.

Atribut cakupan

Atribut ini mengidentifikasi siklus hidup elemen Action. Atribut id dan atribut scope berhubungan langsung, karena atribut scope menentukan umur dari objek yang berhubungan dengan id. Atribut cakupan memiliki empat kemungkinan nilai:(a) page, (b)request, (c)session, dan (d) application.

Tindakan <jsp: include>

Tindakan ini memungkinkan Anda memasukkan file ke halaman yang sedang dibuat. Sintaksnya terlihat seperti ini -

<jsp:include page = "relative URL" flush = "true" />

tidak seperti include direktif, yang menyisipkan file pada saat halaman JSP diterjemahkan ke dalam servlet, tindakan ini memasukkan file pada saat halaman tersebut diminta.

Tabel berikut mencantumkan atribut yang terkait dengan tindakan termasuk -

S.No. Atribut & Deskripsi
1

page

URL relatif halaman yang akan disertakan.

2

flush

Atribut boolean menentukan apakah sumber daya yang disertakan telah dikosongkan buffernya sebelum disertakan.

Contoh

Mari kita tentukan dua file berikut (a)date.jsp dan (b) main.jsp sebagai berikut -

Berikut ini adalah konten dari date.jsp file -

<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>

Berikut ini adalah konten dari main.jsp file -

<html>
   <head>
      <title>The include Action Example</title>
   </head>
   
   <body>
      <center>
         <h2>The include action Example</h2>
         <jsp:include page = "date.jsp" flush = "true" />
      </center>
   </body>
</html>

Sekarang mari kita simpan semua file ini di direktori root dan coba akses main.jsp. Anda akan menerima output berikut -

The include action Example

Today's date: 12-Sep-2010 14:54:22

Tindakan <jsp: useBean>

Itu useBeanaksinya cukup fleksibel. Ini pertama mencari objek yang ada menggunakan variabel id dan cakupan. Jika sebuah objek tidak ditemukan, itu kemudian mencoba untuk membuat objek yang ditentukan.

Cara termudah untuk memuat kacang adalah sebagai berikut -

<jsp:useBean id = "name" class = "package.class" />

Setelah kelas kacang dimuat, Anda dapat menggunakan jsp:setProperty dan jsp:getProperty tindakan untuk mengubah dan mengambil properti kacang.

Tabel berikut mencantumkan atribut yang terkait dengan tindakan useBean -

S.No. Atribut & Deskripsi
1

class

Menunjuk nama paket lengkap kacang.

2

type

Menentukan jenis variabel yang akan merujuk ke objek.

3

beanName

Memberikan nama kacang seperti yang ditentukan oleh metode instantiate () pada kelas java.beans.Beans.

Sekarang mari kita bahas jsp:setProperty dan jsp:getProperty tindakan sebelum memberikan contoh yang valid terkait dengan tindakan tersebut.

Tindakan <jsp: setProperty>

Itu setPropertytindakan mengatur properti Bean. Bean harus sudah ditentukan sebelumnya sebelum tindakan ini. Ada dua cara dasar untuk menggunakan tindakan setProperty -

Kamu dapat memakai jsp:setProperty setelah, tetapi di luar a jsp:useBean elemen, seperti yang diberikan di bawah ini -

<jsp:useBean id = "myName" ... />
...
<jsp:setProperty name = "myName" property = "someProperty" .../>

Dalam hal ini, file jsp:setProperty dijalankan terlepas dari apakah kacang baru dibuat atau kacang yang sudah ada ditemukan.

Konteks kedua di mana jsp: setProperty dapat muncul adalah di dalam isi a jsp:useBean elemen, seperti yang diberikan di bawah ini -

<jsp:useBean id = "myName" ... >
   ...
   <jsp:setProperty name = "myName" property = "someProperty" .../>
</jsp:useBean>

Di sini, jsp: setProperty dijalankan hanya jika objek baru dibuat, bukan jika objek yang sudah ada ditemukan.

Tabel berikut mencantumkan atribut yang terkait dengan setProperty tindakan -

S.No. Atribut & Deskripsi
1

name

Menunjuk bean properti yang akan disetel. Bean harus sudah ditentukan sebelumnya.

2

property

Menunjukkan properti yang ingin Anda setel. Nilai "*" berarti bahwa semua parameter permintaan yang namanya cocok dengan nama properti kacang akan diteruskan ke metode penyetel yang sesuai.

3

value

Nilai yang akan diberikan ke properti tertentu. Nilai parameternya adalah null, atau parameter tersebut tidak ada, tindakan setProperty diabaikan.

4

param

Atribut param adalah nama parameter permintaan yang nilainya akan diterima oleh properti. Anda tidak dapat menggunakan nilai dan param, tetapi Anda juga tidak boleh menggunakan keduanya.

Tindakan <jsp: getProperty>

Itu getProperty action digunakan untuk mengambil nilai dari properti tertentu dan mengubahnya menjadi string, dan akhirnya memasukkannya ke dalam output.

Tindakan getProperty hanya memiliki dua atribut, keduanya diperlukan. Sintaks dari tindakan getProperty adalah sebagai berikut -

<jsp:useBean id = "myName" ... />
...
<jsp:getProperty name = "myName" property = "someProperty" .../>

Tabel berikut mencantumkan atribut yang diperlukan yang terkait dengan getProperty tindakan -

S.No. Atribut & Deskripsi
1

name

Nama Bean yang memiliki properti yang akan diambil. Bean harus sudah ditentukan sebelumnya.

2

property

Atribut properti adalah nama properti Bean yang akan diambil.

Contoh

Mari kita definisikan kacang uji yang selanjutnya akan digunakan dalam contoh kita -

/* File: TestBean.java */
package action;
 
public class TestBean {
   private String message = "No message specified";
 
   public String getMessage() {
      return(message);
   }
   public void setMessage(String message) {
      this.message = message;
   }
}

Kompilasi kode di atas ke file TestBean.class file dan pastikan Anda menyalin TestBean.class di C:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\action folder dan CLASSPATH variabel juga harus disetel ke folder ini -

Sekarang gunakan kode berikut di main.jspmengajukan. Ini memuat kacang dan set / mendapatkan parameter String sederhana -

<html>
   
   <head>
      <title>Using JavaBeans in JSP</title>
   </head>
   
   <body>
      <center>
         <h2>Using JavaBeans in JSP</h2>
         <jsp:useBean id = "test" class = "action.TestBean" />
         <jsp:setProperty name = "test"  property = "message" 
            value = "Hello JSP..." />
            
         <p>Got message....</p>
         <jsp:getProperty name = "test" property = "message" />
      </center>
   </body>
</html>

Sekarang mari kita coba akses main.jsp, itu akan menampilkan hasil sebagai berikut -

Using JavaBeans in JSP

Got message.... Hello JSP...

Tindakan <jsp: maju>

Itu forward tindakan menghentikan tindakan halaman saat ini dan meneruskan permintaan ke sumber daya lain seperti halaman statis, halaman JSP lain, atau Java Servlet.

Berikut ini adalah sintaks dari file forward tindakan -

<jsp:forward page = "Relative URL" />

Tabel berikut mencantumkan atribut yang diperlukan yang terkait dengan tindakan maju -

S.No. Atribut & Deskripsi
1

page

Harus terdiri dari URL relatif dari sumber daya lain seperti halaman statis, halaman JSP lain, atau Java Servlet.

Contoh

Mari kita gunakan kembali dua file berikut (a) date.jsp dan (b) main.jsp sebagai berikut -

Berikut ini adalah konten dari date.jsp file -

<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>

Berikut ini adalah konten dari main.jsp file -

<html>
   <head>
      <title>The include Action Example</title>
   </head>
   
   <body>
      <center>
         <h2>The include action Example</h2>
         <jsp:forward page = "date.jsp" />
      </center>
   </body>
</html>

Sekarang mari kita simpan semua file ini di direktori root dan coba akses main.jsp. Ini akan menampilkan hasil seperti di bawah ini.

Di sini ia membuang konten dari halaman utama dan menampilkan konten hanya dari halaman yang diteruskan.

Today's date: 12-Sep-2010 14:54:22

Tindakan <jsp: plugin>

Itu pluginaction digunakan untuk memasukkan komponen Java ke halaman JSP. Ini menentukan jenis browser dan menyisipkan file<object> atau <embed> tag sesuai kebutuhan.

Jika plugin yang dibutuhkan tidak ada, itu mengunduh plugin dan kemudian mengeksekusi komponen Java. Komponen Java dapat berupa Applet atau JavaBean.

Tindakan plugin memiliki beberapa atribut yang sesuai dengan tag HTML umum yang digunakan untuk memformat komponen Java. Itu<param> elemen juga dapat digunakan untuk mengirim parameter ke Applet atau Bean.

Berikut ini adalah sintaks khas menggunakan tindakan plugin -

<jsp:plugin type = "applet" codebase = "dirname" code = "MyApplet.class"
   width = "60" height = "80">
   <jsp:param name = "fontcolor" value = "red" />
   <jsp:param name = "background" value = "black" />
 
   <jsp:fallback>
      Unable to initialize Java Plugin
   </jsp:fallback>
 
</jsp:plugin>

Anda dapat mencoba tindakan ini menggunakan beberapa applet jika Anda tertarik. Elemen baru, file<fallback> elemen, dapat digunakan untuk menentukan string kesalahan yang akan dikirim ke pengguna jika komponen gagal.

The <jsp:element> Action

The <jsp:attribute> Action

The <jsp:body> Action

Itu <jsp:element>, <jsp:attribute> dan <jsp:body>tindakan digunakan untuk mendefinisikan elemen XML secara dinamis. Kata dinamis itu penting, karena ini berarti bahwa elemen XML dapat dihasilkan pada waktu permintaan daripada secara statis pada waktu kompilasi.

Berikut adalah contoh sederhana untuk 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>Generate XML Element</title></head>
   
   <body>
      <jsp:element name = "xmlElement">
         <jsp:attribute name = "xmlElementAttr">
            Value for the attribute
         </jsp:attribute>
         
         <jsp:body>
            Body for XML element
         </jsp:body>
      
      </jsp:element>
   </body>
</html>

Ini akan menghasilkan kode HTML berikut pada saat dijalankan -

<html xmlns = "http://www.w3c.org/1999/xhtml" xmlns:jsp = "http://java.sun.com/JSP/Page">
   <head><title>Generate XML Element</title></head>
   
   <body>
      <xmlElement xmlElementAttr = "Value for the attribute">
         Body for XML element
      </xmlElement>
   </body>
</html>

Tindakan <jsp: text>

Itu <jsp:text>action dapat digunakan untuk menulis teks template di halaman dan dokumen JSP. Berikut ini adalah sintaks sederhana untuk tindakan ini -

<jsp:text>Template data</jsp:text>

Badan template tidak boleh berisi elemen lain; itu hanya dapat berisi teks dan ekspresi EL (Catatan - Ekspresi EL dijelaskan dalam bab berikutnya). Perhatikan bahwa dalam file XML, Anda tidak dapat menggunakan ekspresi seperti${whatever > 0}, karena tanda yang lebih besar dari itu ilegal. Sebagai gantinya, gunakangt bentuk, seperti ${whatever gt 0} atau alternatifnya adalah menyematkan nilai dalam a CDATA bagian.

<jsp:text><![CDATA[<br>]]></jsp:text>

Jika Anda perlu menyertakan file DOCTYPE deklarasi, misalnya untuk XHTML, Anda juga harus menggunakan <jsp:text> elemen sebagai berikut -

<jsp:text><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "DTD/xhtml1-strict.dtd">]]></jsp:text>

   <head><title>jsp:text action</title></head>
   
   <body>
      <books><book><jsp:text>  
         Welcome to JSP Programming
      </jsp:text></book></books>
   </body>
</html>

Coba contoh di atas dengan dan tanpa <jsp:text> tindakan.