JSF2 par la pratique

44
JSF 2 par la pratique 1 vendredi 10 septembre 2010

Transcript of JSF2 par la pratique

Page 1: JSF2 par la pratique

JSF 2par la pratique

1

vendredi 10 septembre 2010

Page 2: JSF2 par la pratique

INTERVENANTDamien GOUYETTE

Expert technique java / JEE. Scrummaster certifié

Plus particulièrement spécialisé dans le développement d'IHM webBlog : http://www.cestpasdur.comTwitter : @cestpasdur

2

vendredi 10 septembre 2010

Page 3: JSF2 par la pratique

OBJECTIFS DE LA PRÉSENTATION

• Présenter les nouveautés de JSF 2

•Donner des exemples concrets d’utilisation au travers du développement d’un blog

3

vendredi 10 septembre 2010

Page 4: JSF2 par la pratique

4

Historique

• 2004 : JSF 1.0 & 1.1

• 2006 : JSF 1.2

•Octobre 2009 : JSF 2

vendredi 10 septembre 2010

Page 5: JSF2 par la pratique

PLAN DU BLOG

5

vendredi 10 septembre 2010

Page 6: JSF2 par la pratique

DÉCOUPAGE D’UNE PAGE

6

vendredi 10 septembre 2010

Page 7: JSF2 par la pratique

FONCTIONNALITÉS DE FACELET

• Templating & inclusion,

• Création de composant,

•Débogage,

• Répétition.

7

vendredi 10 septembre 2010

Page 8: JSF2 par la pratique

CODE DU MAITRE

8

vendredi 10 septembre 2010

Page 9: JSF2 par la pratique

UN PEU DE TRAITEMENT

9

vendredi 10 septembre 2010

Page 10: JSF2 par la pratique

JSF2 & ANNOTATIONS

•@ManagedBean

•@FacesComponent,

•@FacesRenderer,

•@FacesConverter,

•@FacesValidator.

10

vendredi 10 septembre 2010

Page 11: JSF2 par la pratique

MANAGEDBEAN & ANNOTATION

•@ApplicationScoped,

•@SessionScoped,

•@ViewScoped (new),

•@RequestScoped

•@NoneScoped,

11

vendredi 10 septembre 2010

Page 12: JSF2 par la pratique

UN PEU DE NAVIGATION

12

vendredi 10 septembre 2010

Page 13: JSF2 par la pratique

NAVIGATION : AVANT/APRÈS

13

vendredi 10 septembre 2010

Page 14: JSF2 par la pratique

NAVIGATION CONDITIONNELLE <IF/>

14

<if>#{managedBean.proprieteBooleenne}</if>

vendredi 10 septembre 2010

Page 15: JSF2 par la pratique

AJOUT D’UN COMMENTAIRE

15

vendredi 10 septembre 2010

Page 16: JSF2 par la pratique

PROBLÈME DE DOUBLE SOUMISSION

• Solution : GET

16

vendredi 10 septembre 2010

Page 17: JSF2 par la pratique

REDIRECTION AVEC JSF 2

•Outcome suffixé par ?faces-redirect=true

•<redirect/> dans navigation-rule

17

vendredi 10 septembre 2010

Page 18: JSF2 par la pratique

18

•?faces-redirect=true en suffixe des outcome

•<redirect/> sur la navigation-case

EXEMPLES :

vendredi 10 septembre 2010

Page 19: JSF2 par la pratique

URL BOOKMARKABLES

19

vendredi 10 septembre 2010

Page 20: JSF2 par la pratique

BOOKMARK & JSF

• 3 composants :

• <h:link/>

• <h:button/>

• <f:viewParam/>

20

vendredi 10 septembre 2010

Page 21: JSF2 par la pratique

BOOKMARK & CODE

21

vendredi 10 septembre 2010

Page 22: JSF2 par la pratique

AFFICHAGE D’UNE NOTIFICATION

22

vendredi 10 septembre 2010

Page 23: JSF2 par la pratique

FLASHSCOPE

23

vendredi 10 septembre 2010

Page 24: JSF2 par la pratique

VALIDATION DU COMMENTAIRE

24

vendredi 10 septembre 2010

Page 25: JSF2 par la pratique

VALIDATION : AVANT

25

vendredi 10 septembre 2010

Page 26: JSF2 par la pratique

VALIDATION : APRÈS

26

vendredi 10 septembre 2010

Page 27: JSF2 par la pratique

ANNOTATIONS DISPONIBLES

Contraintes disponibles :

•@CreditCardNumber, @Email, @URL

•@Length, @Range, @Min, @Max,

• @Past, @Future...

27

vendredi 10 septembre 2010

Page 28: JSF2 par la pratique

AJOUT D’UN COMMENTAIRE EN AJAX

28

vendredi 10 septembre 2010

Page 29: JSF2 par la pratique

<F:AJAX/> ATTRIBUTS

execute & render, valeurs possibles :

@all,@none,@form,@this (par défaut)

eventchange, click...

29

vendredi 10 septembre 2010

Page 30: JSF2 par la pratique

LE CODE

30

vendredi 10 septembre 2010

Page 31: JSF2 par la pratique

VALIDATION & AJAX

• Valide le contenu à chaque perte de focus sur un élément.

31

vendredi 10 septembre 2010

Page 32: JSF2 par la pratique

VALIDATION & AJAX 2

32

vendredi 10 septembre 2010

Page 33: JSF2 par la pratique

COMPOSANT COMPOSITE TWITTER

•Nécessite l’ajout de ressources statiques

33

vendredi 10 septembre 2010

Page 34: JSF2 par la pratique

TRAITEMENT DES RESSOURCES

• CSS, javascript, images

• Emplacements

• /resources

• /META-INF/resources

• Structure des resources

• [localePrefix]/[libraryName]/[libraryVersion]/resourceName/[resourceVersion]

• [] = facultatif

• EL : #{resource['<library name>:<resource name>']} (utilisable aussi dans les fichiers JS et CSS)

• Version

• La dernière version disponible (library & resource) est sélectionnée automatiquement

34

vendredi 10 septembre 2010

Page 35: JSF2 par la pratique

TRAITEMENT DES RESSOURCES

• <h:outputScript library="helloworld" name="function.js" target="head"/>ou #{resource["helloworld:function.js"]}

35

vendredi 10 septembre 2010

Page 36: JSF2 par la pratique

LE CODE

36

vendredi 10 septembre 2010

Page 37: JSF2 par la pratique

COMPOSITE COMPONENT ET BACKING BEAN

Associer du code métier java au composant composite

Backing Bean :

implements javax.faces.component.NamingContainer

getFamily() return «javax.faces.component.NamingContainer»

37

vendredi 10 septembre 2010

Page 38: JSF2 par la pratique

COMPOSITE COMPONENT ET BACKING BEAN

38

vendredi 10 septembre 2010

Page 39: JSF2 par la pratique

COMPOSITE COMPONENT ET BACKING BEAN

39

vendredi 10 septembre 2010

Page 40: JSF2 par la pratique

AMÉLIORATION DES PERFORMANCES

• ViewState,

• Ajax

40

vendredi 10 septembre 2010

Page 41: JSF2 par la pratique

PRÊTS POUR JSF2

Librairies de composants• Richfaces 4.0 M2, IceFaces 2.0 béta 1, PrimeFaces 2.0...

Serveurs d'application• Glassfish, Jboss, Tomcat, Jetty

IDE•NetBeans 6.9, Eclipse et JbossTools 3.2 M1, • IntelliJ IDEA...•Génération de code : Archetypes Maven, Richfaces CDK

41

vendredi 10 septembre 2010

Page 42: JSF2 par la pratique

SYNTHÈSE DES NOUVEAUTÉS

42

Nouvelles fonctionnalités Simplifications

Ajax inclus et optimisé Développement de composant facilité

Profils d’utilisation Navigation simplifiée

Externalisation de ressources statiquesRemplacement de la configuration

XML par des annotations

Nouveaux scopes : ViewScope et FlashScope

Support de GET en plus du POST

vendredi 10 septembre 2010

Page 43: JSF2 par la pratique

POUR ALLER + LOIN

• Code source : http://github.com/dgouyette/jugsummercamp

• Refcard JSF2 : http://refcardz.dzone.com/refcardz/javaserver-faces-20

• Le site de la spécification JSR-314 : http://jcp.org/en/jsr/detail?id=314

• Blog Ed Burns, un des spec leader : http://www.java.net/blogs/edburns

• Liste des librairies tierces-parties : http://www.jsfmatrix.net/

• Livre : JavaServerFaces 2: the complete reference

• Le livre d'Antonio Goncalves sur JEE 6 en général: « Beginning Java EE 6 platform with Glassfish

43

vendredi 10 septembre 2010

Page 44: JSF2 par la pratique

QUESTIONS / RÉPONSES

44

vendredi 10 septembre 2010