JSP - JavaBeans

Un JavaBean est une classe Java spécialement construite, écrite en Java et codée selon les spécifications de l'API JavaBeans.

Voici les caractéristiques uniques qui distinguent un JavaBean des autres classes Java -

  • Il fournit un constructeur par défaut sans argument.

  • Il doit être sérialisable et ce qui peut implémenter le Serializable interface.

  • Il peut avoir un certain nombre de propriétés qui peuvent être lues ou écrites.

  • Il peut avoir un certain nombre de "getter" et "setter"méthodes pour les propriétés.

Propriétés JavaBeans

Une propriété JavaBean est un attribut nommé auquel l'utilisateur de l'objet peut accéder. L'attribut peut être de n'importe quel type de données Java, y compris les classes que vous définissez.

Une propriété JavaBean peut être read, write, read only, ou write only. Les propriétés JavaBean sont accessibles via deux méthodes dans la classe d'implémentation de JavaBean -

S.No. Méthode et description
1

avoirPropertyName()

Par exemple, si le nom de la propriété est firstName , le nom de votre méthode seraitgetFirstName()pour lire cette propriété. Cette méthode est appelée accesseur.

2

ensemblePropertyName()

Par exemple, si le nom de la propriété est firstName , le nom de votre méthode seraitsetFirstName()pour écrire cette propriété. Cette méthode est appelée mutateur.

Un attribut en lecture seule n'aura qu'un getPropertyName() méthode, et un attribut en écriture seule n'aura qu'un setPropertyName() méthode.

Exemple JavaBeans

Considérez une classe d'étudiants avec peu de propriétés -

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

Accéder aux JavaBeans

le useBeanaction déclare un JavaBean à utiliser dans une JSP. Une fois déclaré, le bean devient une variable de script accessible à la fois par les éléments de script et d'autres balises personnalisées utilisées dans la JSP. La syntaxe complète de la balise useBean est la suivante -

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

Ici, les valeurs de l'attribut scope peuvent être page, request, session ou application basedsur votre condition. La valeur duid l'attribut peut être n'importe quelle valeur tant qu'il s'agit d'un nom unique parmi d'autres useBean declarations dans le même JSP.

L'exemple suivant montre comment utiliser l'action 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>

Vous recevrez le résultat suivant - -

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

Accès aux propriétés JavaBeans

De même que <jsp:useBean...> action, vous pouvez utiliser le <jsp:getProperty/> action pour accéder aux méthodes get et à la <jsp:setProperty/>action pour accéder aux méthodes définies. Voici la syntaxe complète -

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

L'attribut name fait référence à l'id d'un JavaBean précédemment introduit dans la JSP par l'action useBean. L'attribut de propriété est le nom duget ou la set méthodes qui doivent être appelées.

L'exemple suivant montre comment accéder aux données en utilisant la syntaxe ci-dessus -

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

Faisons le StudentsBean.classdisponible dans CLASSPATH. Accédez au JSP ci-dessus. le résultat suivant sera affiché -

Student First Name: Zara 

Student Last Name: Ali 

Student Age: 10