JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN
Plan Définition Intérêt Structure d’un Bean Caractéristiques Propriétés Evénements Comment utilisé un javaBean depuis une page jsp Exemples Conclusion
Définition Un javaBean est une classe ou un ensemble de classe conçut pour la réutilisabilité et construites selon certains standards, définis dans les spécifications de la plate-forme et du langage java eux-mêmes. La classe JavaBean sert à représenter des objets d’un type précis ,et des méthodes intrinsèques au fonctionnement de cet objet. Aucun concept nouveau n'intervient dans la création d'un Bean.
Intérêt Facilité d'utilisation Portabilité Utilisation efficace Edition de propriétés personnalisable
Structure Un JavaBean : -doit être une classe publique . -doit avoir au moins un constructeur par défaut, public et sans paramètres. -peut implémenter l'interface Serializable . -ne doit pas avoir de champs publics . -doit définir des propriétés accessibles via des méthodes getter et setter, suivant des règles de nommage.
Exemple d’un Bean package exposé.Bean; public class exempleBean { private int age; private String nom; private boolean mineur; public int getAge() {return this.age;} public String getNom() {return this.nom;} public boolean isMineur () {return this.mineur;} public void setAge( int age ) {this.age = age;} public void setNom( String nom ) {this.nom = nom;} public void setMineur ( boolean mineur ) { /**cette personne n’est pas un mineur... */ this. mineur = false;}}
Caractéristiques: Persistance Communication Introspection
Les propriétés Les propriétés sont des variables d'instance du bean qui possèdent des méthodes particulières pour lire et modifier leur valeur Il existe plusieurs types de propriétés différents : simples, indexées, liées et booléennes…
Les propriétés les Liée Indexée Simple
Propriétés: Propriétés indexées exemple: private float[] notes = new float[5]; public float getNotes (int i ) { return notes[i]; } public void setNotes (int i ; float notes) { this.notes[i] = notes;
Propriétés: Les propriétés liées: Dans les javabeans Il est possible d'informer d'autres composants du changement de la valeur d'une propriété d'un bean. Les java beans peuvent mettre en place un mécanisme qui permet pour une propriété d'enregistrer des composants qui seront informés du changement de la valeur de la propriété. Ce mécanisme peut être mis en place grâce à un objet de la classe PropertyChangeSupport qui permet de simplifier la gestion de la liste des écouteurs et de les informer des changements de valeur d'une propriété. Cette classe définit les méthodes addPropertyChangeListener() pour enregistrer un composant désirant être informé du changement de la valeur de la propriété et removePropertyChangeListener() pour supprimer un composant de la liste. La méthode firePropertyChange() permet d'informer tous les composants enregistrés du changement de la valeur de la propriété.
Les composants qui désirent être enregistrés doivent obligatoirement implémenter l'interface PropertyChangeListener et définir la méthode propertyChange() déclarée par cette interface. La méthode propertyChange() reçoit en paramètre un objet de type PropertyChangeEvent qui représente l'événement. Les méthodes propertyChange() de tous les objets enregistrés sont appelées . La méthode propertyChange() reçoit en paramètre un objet de type PropertyChangeEvent qui contient plusieurs informations : l'objet source : le bean dont la valeur d'une propriété a changé(public Object getSource()) le nom de la propriété modifiée sous forme de chaîne de caractères(public String getPropertyName) l'ancienne valeur de la propriete sous forme d'un objet de type Object(public Object getOldValue()) la nouvelle valeur de la propriete sous forme d'un objet de type Object(public Object getNewValue())
Evénements Une façon d’informer les autres composants que quelque chose d’intéressant est survenu. Ils permettent de propager et de notifier les changements d’états entre un objet source et un ou plusieurs objets Listeners .
Evénements:
Evénements: -doit être sous-classe de java.util.EventObject Un objet événement -doit être sous-classe de java.util.EventObject public EventObject(Object source) extends java.util.EventObject -un événement comporte toujours la référence de l’objet qui en est la source
Evénements: Auditeurs d’événements C'est une interface qui définit les méthodes de notifications . les méthodes de notifications sont les méthodes que la source invoquera pour avertir les intéressés que l'évènement du type requis est survenu! Pour chaque évènement XXXEvent il faudra créer l'interface XXXEventListener qui hérite de la classe java.util.EventListener.
Evénements: Sources d’événements -Une source d’événements doit proposer des méthodes pour que des auditeurs puissent s’enregistrer public void addTypeListener(TypeListener obj) ; public void removeTypeListener(TypeListener obj) ; Deux conditions pour que L (listener) soit auditeur d’une catégorieType d’événements, dont la source est S -enregistrement de L auprès de S comme auditeurs de événements Type -S.AddTypeListener(L) L doit implémenter l’interface TypeListener
Evénements: Pour créer ses propres événements il faut : Construire ses événements Pour créer ses propres événements il faut : -créer sa classe événement qui hérite de java.util.EventObject -créer l’interface XXXListener qui hérite de java.util.EventListener -dans la classe Source, créer les méthodes pour inscrire les auditeurs -gérer le fait de lancer un événement
Comment utiliser un JavaBean depuis une page JSP?? Déclaration Les JavaBeans s’intègrent au sein des JSP en les déclarant en en-tête à l’aide de la directive « useBean » : Syntaxe générale: <jsp:useBean id=“nom de Bean" class=“nom de la classe du Bean" scope="request|session|application|page" > Balise sans corps: <jsp:useBean … />
Récupération des propriétés Par la balise: <jsp:getProperty …> <jsp:useBean id=“nom de Bean" class=“nom de la classe du Bean" scope="request|session|application|page" > <jsp:getProperty name=“nom de Bean“ property=“propriété" /> Ceci remplace le script suivant: <jsp:useBean id=“nom de Bean" class=“nom de la classe du Bean" scope="request|session|application|page" > <%=nom du Bean.getPropriété () %>
Modification des propriété 1) Par la balise: <jsp:setProperty …> <jsp:useBean id=“nom de Bean" class=“nom de la classe du Bean" scope="request|session|application|page" > <jsp:setProperty name=“nom de Bean“ property=“propriété“ value=“valeur” /> Ceci remplace le script suivant: <jsp:useBean id=“nom de Bean" class=“nom de la classe du Bean" scope="request|session|application|page" > <%=nom du Bean.setPropriété () %>
2) <jsp:setProperty name="nom de l’instance du Bean" property="nom de la propriété" param="nom du paramètre de la requête"/> Elle a le même effet que l'élément de script suivant <% nom du Bean.setPropriété(request.getParameter("nom du paramètre de la requête"); %>
3) <jsp:setProperty name="nom du Bean" property="propriété" /> Elle a le même effet que l'élément de script suivant : <% nom du Bean.setPropriété (request.getParameter("nom du paramètre de la requête"));%>
4) <jsp:setproperty name="nom du Bean" property="*" /> Elle a le même effet que les éléments de script suivants : <% nom du bean.SetProprité1(request.getParameter("propriété1"); %> <% nom du bean.SetPropriété2(request.getParameter("propriété2"); %>
Exemple:
Conclusion Un bean est un objet Java réutilisable qui représente une entité, et dont les données sont représentées par des propriétés. Un bean est une classe publique et doit avoir au moins un constructeur par défaut, public et sans paramètres. Une propriété d'un bean est un champ non public, qui doit être accessible à travers un couple de getter/setter. Un bean peut par exemple être transmis d'une servlet vers une page JSP (ou une autre servlet) en tant qu'attribut de requête.
Merci pour votre attention !