Archive

Articles taggués ‘JSF’

Formation développement d’une application web en java – Promotion exceptionnelle

Développement Web Java dans une architecture

Spring, Hibernate et JSF

Nouveau Prix : 1560€

Prix initial : 1950€

4 Jours du 11 au 14 mars

Grenoble

Lire la suite…

Paris JUG octobre 2009 : JSF2 et Servlet 3.0

Tout d’abord, une bonne adresse à noter : si vous ratez les rendez-vous du JUG Parisien, vous pouvez désormais les rejouer à cette adresse http://beta.parleys.com/#st=4&id=56644.

JSF 2.0

La présentation JSF2 faite par Damien Gouyette et François Petitit a détaillé, non pas uniquement les nouveautés JSF2, mais une présentation complète du framework en marquant les nouveautés 2.0.

La présentation est intéressante même pour un débutant JSF. Je ne détaillerai ici que les nouveautés de la mouture 2009 du framework d’IHM de la spec JEE.

On note que JSF2 est bien entendu, complètement inclus dans JEE6 (dont Antonio Goncalves rappelle qu’il fera une présentation au Paris JUG de décembre) et est compatible JEE5.

Voici donc les nouveautés :

  • Une déclaration des managed beans de la sorte :

@ManagedBean

@SessionScoped

public class MonBean {

}

La convention dit que ce bean sera accessible dans la vue par son nom de classe ; première lettre en minuscule : ‘monBean’

  • Validation des vues via les annotations Hibernate Validator (ce qui permet une vérification centralisée des contraintes)
  • Un nouveau scope, le ‘view scope’ ayant une durée de vie égale à la durée de vie de la vue. Scope qui s’intercale donc entre request et session
  • Un des principaux apports de cette nouvelle version est le support natif d’AJAX. On ajoute le support Ajax à un composant JSF en insérant le tag <f:ajax>

<h:inputText ….>

<f:ajax render= »autreChamp » />

</h:inputText>

  • Les Jsp sont abandonnées (mais restent compatibles) au profit des Facelets XHTML. Les Facelets apportent notamment le concept de « templating », permettant de réutiliser aisément des sections de la vue.
  • EZComp permet de créer facilement des composants uniquement via les Facelets (plus de Java nécessaire pour des composants simples) en leur déclarant une interface puis un contenu créé de façon similaire à celui des vues qui sont, elles aussi, des Facelets.

Un exemple des plus classiques : ici on a créé un composant qui prend un attribut ‘value’ :

<!DOCTYPE html PUBLIC « -//W3C//DTD XHTML 1.0 Transitional//EN »

« http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd »>

<html xmlns=« http://www.w3.org/1999/xhtml »

xmlns:h=« http://java.sun.com/jsf/html »

xmlns:ezcomp=« http://java.sun.com/jsf/composite »>

<body>

<ezcomp:interface>

<ezcomp:attribute name=« value » required=« true »/>

</ezcomp:interface>

<ezcomp:implementation>

<!– Les mots clés cc.attrs sont réservés par JSF2 pour accéder aux attributs/paramètres passés au composant –>

<h:outputText value=« Hello #{cc.attrs.value} » />

</ezcomp:implementation>

</body>
</html>

Ce composant est déclaré dans ‘WEB-INF/resources/’ puis utilisé tout simplement :

<ez:mycomp value= »world » />

Je vous laisse deviner le résultat …

  • Un autre apport non négligeable est la gestion de profils d’environnement : « prod », « testUnit » …
  • La gestion des ressources statiques est améliorée : on n’a plus besoin de gérer ces ressources dans le WEB-INF de son projet. Elles peuvent être apportées par un jar.

On note donc une évolution de la spec, reprenant de bonnes idées. On retrouve notamment de nombreux concepts apparus dans des frameworks et librairies JEE comme Seam ou ajax4jsf.

Servlet 3.0

Mon retour sera beaucoup plus rapide sur ce sujet qui nous touche quotidiennement … mais de loin puisque les frameworks que nous utilisons nous font travailler à un plus haut niveau.

La présentation de l’API par Rémy Maucherat concernait donc plus particulièrement les personnes développant ces frameworks. Néanmoins un tour d’horizon permet d’apercevoir quelques impacts sur notre façon de travailler avec ces frameworks :

  • Actuellement, lors de l’ajout d’un framework il est nécessaire de configurer le fameux fichier web.xml afin de notifier le conteneur de servlet de la présence de ce framework.Cela sera remplacé par des web-fragments vivant à l’intérieur des jars des frameworks et donc intégrés au web.xml par le conteneur à l’initialisation.
  • Le deuxième point marquant est la gestion de l’exécution asynchrone des Servlets. Actuellement on réserve un processus pour traiter une requête et la gestion asynchrone devait être gérée par ailleurs.
    Servlet 3.0 permet de rendre un traitement asynchrone et donc de libérer des ressources tout en ayant des requêtes longues. En travaillant sur ce point les frameworks devraient gagner en performance.

Fortement lié au contenu de ce post, un post précédent traitait des nouveautés JEE6.

Categories: Java EE Tags: , , , ,

La famille JSF-AJAX s’enrichit

Nous savions déjà que JSF est une plateforme majeure (au sens d’importance comme de maturité) pour faire des applications WEB 2.0 utilisant AJAX. Jusqu’à présent, nous avions deux bibliothèques populaires de composants JSF pour le faire IceFaces de la société IceSoft et RichFaces de JBoss. Et bien cette famille pourrait bien s’enrichir d’un troisième larron :  OpenFaces.

OpenFaces est donc une riche bibliothèque de composants JSF riches couplée à une solution de requêtage Ajax (la double utilisation du mot riche a été faite à dessein :-) ). On y trouve des champs de saisie avec assistance, saisie de date, courbes, camembert, grille de présentation de données, etc… On y trouve aussi – plus original – un composant Agenda qui permet de placer des items sur un calendrier un peu à la manière de Google Agenda.

intro1

OpenFaces arrive aussi munie d’une gestion d’événements JavaScript (que l’on peut piloter à l’aide de tags spécifiques). Ces tags peuvent être utilisés aussi bien sur les composants JSF standards que sur les composants d’OpenFaces.  Ils permettent d’invoquer des méthodes du backing bean, de demander le rafraichissement partiel de la page, …

Bien qu’étant déjà assez riche, OpenFaces n’est pas aussi fournie que ses conccurentes. Comme elles, OpenFaces est compatible avec Facelet et Seam.  C’est aussi un produit OpenSource. Un très bon point : OpenFaces sait fonctionner avec d’autres librairies de composants, RichFaces entre autres !

Il reste bien sûr du chemin pour qu’OpenFaces devienne aussi célèbre que RichFaces ou IceFaces. Sa présence confirme cependant la vitalité actuelle de la norme JSF.

Categories: Java EE Tags: ,