Les applications Web de type Java sont développées et déployées depuis la généralisation de Servlets en 97. Les premières versions de ces applications construisaient HTML à l’intérieur du code Java, une sorte de retour aux bons vieux jours de l’imbrication des dessins d’écran en RPG II.
En 1998, les Java Server Pages (JSP) venaient dresser une séparation entre la logique de gestion et l’interface utilisateur. Les développeurs adoptaient le modèle Model-View- Controller (MVC) lorsqu’ils créaient leurs propres frameworks MVC.
Jusqu’ici, nous demandons une entrée utilisateur, nous la validons, puis l’utilisons pour exécuter un traitement personnalisé. Mais, le plus souvent, les utilisateurs modifient des données existantes.
D’où la question : comment lier l’information des entités de gestion à votre entrée JSF ? Et bien c’est très simple. Mais avant de vous montrer cela, je dois expliquer comment les entités de gestion sont rendues disponibles dans Java. La communauté Java possède un mécanisme largement adopté pour partager des données de gestion entre processus.
C’est la programmation POJO (Plain Old Java Objects). Pour l’essentiel, en termes ILE, vous mettez des informations de gestion dans des structures de données et vous faites passer ces structures à votre entourage. Un POJO n’est rien d’autre qu’une classe Java qui contient banalement des données. Elle n’a pas de méthodes de gestion.
Les POJO sont généralement peuplés en utilisant un modèle DAO (Data Access Object). Le code tiers Web (les backing beans de notre JSF) envoie des requêtes au code DOA, en demandant l’extraction d’un ou plusieurs POJO. Ici nous utilisons un Person POJO avec les attributs : firstName, lastName, birthDate, children et state. Je n’ai pas assez de place dans cet article pour expliquer comment mettre en oeuvre le Person DOA. Nous mettrons donc une méthode stub dans le backing bean qui crée une instance Person POJO avec des valeurs par défaut :
private Person getPerson() { Person person = new Person(); person.setFirstName("Don"); person.setLastName("Denoncourt"); person.setState("VA"); person.setBirthDate(new Date()); return person; }
Dans une application réelle, le Person POJO serait peuplé à partir d’une base de données à la demande de paramètres de requête utilisateur (du genre numéro de Sécurité Sociale ou ID client). Enfin, dans le backing bean, nous ajoutons un attribut pour contenir la personne par défaut puis nous changeons le constructeur pour l’initialiser :
private Person personForPage; public Page1() { personForPage = getPerson(); } public Person getPersonPage() { return personForPage; }
Comme nous avons notre POJO, revenons au problème du lien des données de gestion ou, en d’autres termes, comment obtenir la personne sur la page ? Avec Struts ou tout autre framework Web Java, ce serait une tâche plutôt complexe. Avec JSF, c’est facile. Reportez-vous simplement à la variable backing bean dans l’étiquette inputText : Et si cela ne vous semble pas assez facile, dans la vue Properties, cliquez sur l’icône livre et sélectionnez l’attribut Person sur la boîte de dialogue Select Page Data Object (figure 6).
Le code de liage dans l’attribut de valeur de inputText sera défini automatiquement. Désormais, chaque fois que la page sera chargée, la valeur de firstName de la Person POJO courante sera affichée dans le champ d’entrée HTML. De plus, quand l’utilisateur cliquera sur le bouton Submit, JSF changera la valeur firstName du backing bean Person pour refléter les modifications utilisateur. La figure 7 montre la page obtenue une fois que j’ai ajouté les étiquettes inputText pour chacun des attributs Person.
Téléchargez cette ressource
Guide inmac wstore pour l’équipement IT de l’entreprise
Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre dossier Green IT sur les actions engagés par inmac wstore pour réduire son impact environnemental