Objectifs
Comment utiliser des beans ?
- Une fois la classe créée, les beans sont des objets Java sur lesquels on peut faire ces actions :
- Instanciation d'un nouveau bean
- Récupération de la valeur d'une propriété du bean
- Affectation/modification de la valeur d'une propriété du bean
- Pour faire cela dans une Servlet, ça ne pose pas de problème particulier, le bean est traité comme un objet Java standard.
- Cependant, dans une JSP, l'utilisation des balise de scriptlets n'est pas très "pratique", on utilisera plutôt l'une des manière suivantes :
- Balises JSP (JSP 1.2) : <jsp:useBean>, <jsp:getProperty>, <jsp:setProperty>
- Utilisation des EL (JSP 2.0) (si le serveur le supporte) : ${...}
Étiquette jsp:getProperty.../>
- Pour appeler une propriété d'un JavaBean, on utilise l'étiquette jsp:getProperty.../>.
Syntaxe
<jsp: getProperty name="nomDobjet" property="nomDeLapropriété"/>- name: le nom du bean, tel que déclaré dans l'attribut id de l'élément useBean.
- property: le nom de la propriété que l'on fixe. Il doit exister un setter associé.
En MVC
- En MVC, les beans sont uniquement consultés par la vue, pour faire son affichage.
- L'instruction
${...}est une EL (Expression Language). - L'Expression Language permet de récupérer l'information sur un bean (s'il a été mis préalablement dans un scope par une servlet avec un setAttribute):
${nomBean.property}- nomBean est celui défini lors du setAttribute fait par la servlet
- property est le nom de la propriété que l'on veut accéder (attention aux normes d'écriture Java => respectez la casse)
Exemple d'utilisation
- Créer une classe de beans simple Personne.java :
- Créer une page personne.jsp
- Exécuter le beanExample.jsp. Cliquez avec le bouton droit sur personne.jsp et sélectionnez Exécuter> Exécuter. La sortie suivante serait visible:


Application
- L'objectif est d'écrire un programme JSP qui modifie les propriétés de l'objet NHT NombreHeureDeTravail vue ici
- Réaliser un formulaire dans une page jsp qui regroupe l'ensemble des propriétés élaborées dans cette classe
- Lors du premier appel au formulaire, l'objet NHT est initialisé de façon à afficher un nombre d'heure de travail par défaut.