JSP-JavaBean

JavaBean là một lớp Java được xây dựng đặc biệt được viết bằng Java và được mã hóa theo các thông số kỹ thuật API của JavaBeans.

  • Sau đây là các đặc điểm riêng biệt phân biệt JavaBean với các lớp Java khác −
  • Nó cung cấp một hàm tạo mặc định, không có đối số.
  • Nó phải có thể tuần tự hóa và có thể triển khai giao diện Serializable.
  • Nó có thể có một số thuộc tính có thể đọc hoặc ghi.
  • Nó có thể có một số phương thức “getter” và “setter” cho các thuộc tính.

Thuộc tính JavaBeans

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

Thuộc tính JavaBean có thể là đọc, ghi, chỉ đọc hoặc chỉ ghi. Thuộc tính JavaBean được truy cập thông qua hai phương thức trong lớp triển khai của JavaBean −

1getPropertyName()
Ví dụ, nếu tên thuộc tính là firstName, tên phương thức của bạn sẽ là getFirstName() để đọc thuộc tính đó. Phương thức này được gọi là accessor.
2setPropertyName()
Ví dụ, nếu tên thuộc tính là firstName, tên phương thức của bạn sẽ là setFirstName() để ghi thuộc tính đó. Phương thức này được gọi là mutator.

Thuộc tính chỉ đọc sẽ chỉ có phương thức getPropertyName() và thuộc tính chỉ ghi sẽ chỉ có phương thức setPropertyName().

Ví dụ JavaBeans

Hãy xem xét một lớp sinh viên có một vài thuộc tính −

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

Hành động useBean khai báo một JavaBean để sử dụng trong JSP. Sau khi khai báo, bean trở thành một biến tập lệnh có thể được truy cập bởi cả các phần tử tập lệnh và các thẻ tùy chỉnh khác được sử dụng trong JSP. Cú pháp đầy đủ cho thẻ useBean như sau −

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

Tại đây, các giá trị cho thuộc tính scope có thể là một trang, yêu cầu, phiên hoặc ứng dụng dựa trên 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à tên duy nhất trong số các khai báo useBean khác trong cùng một JSP.

Ví dụ sau đây cho thấy cách sử dụng hành động useBean −

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

Kết quả:

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

Truy cập Thuộc tính JavaBeans

Cùng với hành động , bạn có thể sử dụng hành động để truy cập các phương thức get và hành động để truy cập các phương thức set. Sau đâ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 name tham chiếu đến id của JavaBean đã được hành động useBean giới thiệu trước đó với JSP. Thuộc tính property là tên của phương thức get hoặc set cần được gọi.

Ví dụ sau đây cho thấy cách truy cập dữ liệu bằng cú pháp trên −

<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>

Kết quả

Student First Name: Zara 

Student Last Name: Ali 

Student Age: 10