JSP - JavaBeans

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 đặc tả API của JavaBeans.

Sau đây là các đặc điểm duy nhất phân biệt một JavaBean với các lớp Java khác:

  • Nó cung cấp một phương thức khởi tạo không đối số, mặc định.

  • Nó phải có thể tuần tự hóa và có thể triển khai Serializable giao diện.

  • Nó có thể có một số thuộc tính có thể đọc hoặc viết.

  • Nó có thể có một số "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 có thể được truy cập bởi người dùng đối tượng. Thuộc tính có thể thuộc bất kỳ kiểu dữ liệu Java nào, bao gồm các lớp mà bạn xác định.

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

Không. Phương pháp & Mô tả
1

đượcPropertyName()

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.

2

bộPropertyName()

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()để viết thuộc tính đó. Phương pháp này được gọi là mutator.

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

Ví dụ về JavaBeans

Hãy xem xét một lớp học sinh có ít thuộc tính -

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

Các useBeanhành động khai báo một JavaBean để sử dụng trong một JSP. Sau khi được khai báo, bean trở thành một biến kịch bản có thể được truy cập bởi cả các phần tử kịch bản 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/>

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

Ví dụ sau 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>

Bạn sẽ nhận được kết quả sau - -

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

Truy cập thuộc tính JavaBeans

Cùng với <jsp:useBean...> hành động, bạn có thể sử dụng <jsp:getProperty/> hành động để truy cập các phương thức get và <jsp:setProperty/>hành động để truy cập các phương thức đã thiết lập. Đâ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 đưa vào JSP trước đó bởi hành động useBean. Thuộc tính property là tên củaget hoặc là set phương thức cần được gọi.

Ví dụ sau 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>

Hãy để chúng tôi làm cho StudentsBean.classcó sẵn trong CLASSPATH. Truy cập JSP ở trên. kết quả sau sẽ được hiển thị:

Student First Name: Zara 

Student Last Name: Ali 

Student Age: 10