Les JavaBeans
sont des classes Java (POJO) qui suivent certaines conventions
– Doivent avoir un constructeur vide (zero argument)
• On peut satisfaire cette contrainte soit en définissant explicitement un tel constructeur, soit en ne spécifiant aucun constructeur
– Ne doivent pas avoir d’attributs publics
• Une bonne pratique réutilisable par ailleurs…
– La valeur des attributs doit être manipuléeà travers des méthodes getXxx et setXxx
• Si une classe possède une méthode getTitle qui retourne une String, on dit que le bean possède une propriété String nommée title
• Les propriétés Boolean utilisent isXxx à la place de getXxx
– Référence sur les beans, cf.
http://java.sun.com/beans/docs/ JavaBeans?
Pourquoi faut-il utiliser des accesseurs?
• Dans un bean, on ne peut pas avoir de champs publics
• Donc, il faut remplacer
public double speed;
par
private double speed;
public double getSpeed(){
return(speed);
}
public void setSpeed (double newSpeed){
speed= newSpeed;
}
Pourquoi faut-il faire cela pour tout code Java?
Utilisation basique des Beans
- jsp:useBean
– Cet élément construit un nouveau bean.
Utilisation:
<jsp:useBean id= »beanName » class= »package.Class » />
- jsp:setProperty
– Cet élément modifie une propriété d’un bean (i.e., appel d’une methode setXxx). Utilisation:
<jsp:setProperty name= »beanName »
property= »propertyName »
value= »propertyValue » />
- jsp:getProperty
– Cet élément lit et retourne la valeur d’une propriété d’un bean.
Utilisation:
<jsp:getProperty name= »beanName »
property= »propertyName » />
Approche générale avec des JSP autonomes et les tags jsp:useBean
• L’utilisateur soumet un formulaire vers une JSP
– <FORM ACTION= »SomePage.jsp »>
• La page JSP instancie un bean
– <jsp:useBean id= »myBean » class= »… »/>
• On passe des données de la requête au bean
– <jsp:setProperty name= »myBean„
property= »customerID„
value= »… » />
• On affiche des valeurs issues des données de la requête
– <jsp:getProperty name= »myBean »
property= »bankAccountBalance » />
Création de Beans : jsp:useBean
• Format
– <jsp:useBean id= »name » class= »package.Class » />
But
– Permettre l’instanciation de classes Java sans programmation Java explicite (syntaxe compatible XML)
Remarques
– Interpretation simple:
<jsp:useBean id= »book1″ class= »coreservlets.Book » />
peut être vu comme équivalent auscriptlet:
<% coreservlets.Book book1= new coreservlets.Book(); %>
– Mais jsp:useBean a deux avantages supplémentaires:
• Facilite l’utilisation des paramètres de requête
• Facilite le partage des objets entre pages ou servlets
……
Cours java EE (292 KO) (Cours PDF)