JavaBeans trong JSP

Một JavaBean là một lớp Java được xây dựng một cách đặc biệt trong Java và được mã hóa theo JavaBeans API Specifications.

Sau đây là các đặc trưng duy nhất giúp phân biệt một JavaBean với các lớp khác trong Java:

  • Nó cung cấp một constructor mặc định, không có tham số.
  • Nó có thể xếp thứ tự và triển khai Serializable interface.
  • Nó có thể có một số đặc tính mà có thể được đọc và được viết.
  • Nó có thể có một số phương thức "getter" và "setter" cho các đặc tính.

Các đặc tính của JavaBeans

Một đặc tính của JavaBean là một thuộc tính được đặt tên mà có thể được truy cập bởi người sử dụng đối tượng đó. Thuộc tính này có thể là bất kỳ kiểu dữ liệu Java nào, bao gồm cả các lớp mà bạn định nghĩa.

Một đặc tính của JavaBean có thể là read, write, read-only, hoặc write-only. Các đặc tính JavaBeans được truy cập thông qua hai phương thức trong lớp triển khai của JavaBean:

Phương thứcMiêu tả
getPropertyName()Ví dụ, nếu tên đặc tính là firstName, thì tên phương thức sẽ là getFirstName() để đọc đặc tính đó. Phương thức này được gọi bởi accessor
setPropertyName()Ví dụ, nếu tên đặc tính là firstName, thì tên phương thức sẽ là setFirstName() để viết phương thức đó. Phương thức này được gọi bởi mutator.

Một thuộc tính read-only sẽ chỉ có một phương thức getPropertyName(), và một thuộc tính write-only sẽ chỉ có một phương thức setPropertyName().

Ví dụ về JavaBeans

Bạn xem xét một Student class với một số đặc tính sau:

package com.tutorialspoint;


public class StudentsBean implements java.io.Serializable
{
   private String firstName = null;
   private String lastName = null;
   private int age = 0;


   public StudentsBean() {
   }
   public String getFirstName(){
      return firstName;
   }
   public String getLastName(){
      return lastName;
   }
   public int getAge(){
      return age;
   }
   public void setFirstName(String firstName){
      this.firstName = firstName;
   }
   public void setLastName(String lastName){
      this.lastName = lastName;
   }
   public void setAge(Integer age){
      this.age = age;
   }
}

Truy cập JavaBeans

useBean action khai báo một JavaBean để sử dụng trong một JSP. Một khi đã được khai báo, Bean này trở thành một biến scripting mà có thể được truy cập bởi cả các phần tử scripting và các Custom Tags khác (custom tag) được sử dụng trong JSP. Cú pháp đầy đủ để sử dụng thẻ useBean là:

jsp:useBean id="bean's name" scope="bean's scope" typeSpec/>

Ở đây, các giá trị cho thuộc tính scope có thể là page, request, session hoặc application tùy theo yêu cầu của bạn. Giá trị của thuộc tính id có thể là bất kỳ giá trị nào, miễn là nó là một tên duy nhất giữa các khai báo useBean trong cùng JSP.

Ví dụ sau minh họa cách sử dụng đơn giản của nó:

<html>
<head>
<title>useBean Example</title>
</head>
<body>


<jsp:useBean id="date" class="java.util.Date" /> 
<p>The date/time is <%= date %>


</body>
</html>

Nó sẽ cho kết quả sau:

The date/time is Thu Sep 30 11:18:11 GST 2010 

Truy cập các Property của JavaBeans

Cùng với <jsp:useBean...>, bạn có thể sử dụng <jsp:getProperty/>để truy cập các phương thức get và <jsp:setProperty/> action để truy cập các phương thức set. Đây là cú pháp đầy đủ:

<jsp:useBean id="id" class="bean's class" scope="bean's scope">
   <jsp:setProperty name="bean's id" property="property name"  
                    value="value"/>
   <jsp:getProperty name="bean's id" property="property name"/>
   ...........
</jsp:useBean>

Thuộc tính tham chiếu name id của một JavaBean được giới thiệu trước đó tới JSP bởi useBean action. Thuộc tính property là tên của phương thức get hoặc set nên được gọi.

Ví dụ đơn giản sau để truy cập dữ liệu bởi sử dụng cú pháp trên trong JSP:

<html>
<head>
<title>get and set properties Example</title>
</head>
<body>


<jsp:useBean id="students" 
                    class="com.tutorialspoint.StudentsBean"> 
   <jsp:setProperty name="students" property="firstName"
                    value="Zara"/>
   <jsp:setProperty name="students" property="lastName" 
                    value="Ali"/>
   <jsp:setProperty name="students" property="age" 
                    value="10"/>
</jsp:useBean>


<p>Student First Name: 
   <jsp:getProperty name="students" property="firstName"/>
</p>
<p>Student Last Name: 
   <jsp:getProperty name="students" property="lastName"/>
</p>
<p>Student Age: 
   <jsp:getProperty name="students" property="age"/>
</p>


</body>
</html>

Tạo StudentsBean.class có sẵn trong CLASSPATH và thử truy cập JSP trên. Nó sẽ cho kết quả sau:

Student First Name: Zara 

Student Last Name: Ali 

Student Age: 10 

Bình luận