JSF2 par la pratique

Preview:

Citation preview

JSF 2par la pratique

1

vendredi 10 septembre 2010

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

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

4

Historique

• 2004 : JSF 1.0 & 1.1

• 2006 : JSF 1.2

•Octobre 2009 : JSF 2

vendredi 10 septembre 2010

PLAN DU BLOG

5

vendredi 10 septembre 2010

DÉCOUPAGE D’UNE PAGE

6

vendredi 10 septembre 2010

FONCTIONNALITÉS DE FACELET

• Templating & inclusion,

• Création de composant,

•Débogage,

• Répétition.

7

vendredi 10 septembre 2010

CODE DU MAITRE

8

vendredi 10 septembre 2010

UN PEU DE TRAITEMENT

9

vendredi 10 septembre 2010

JSF2 & ANNOTATIONS

•@ManagedBean

•@FacesComponent,

•@FacesRenderer,

•@FacesConverter,

•@FacesValidator.

10

vendredi 10 septembre 2010

MANAGEDBEAN & ANNOTATION

•@ApplicationScoped,

•@SessionScoped,

•@ViewScoped (new),

•@RequestScoped

•@NoneScoped,

11

vendredi 10 septembre 2010

UN PEU DE NAVIGATION

12

vendredi 10 septembre 2010

NAVIGATION : AVANT/APRÈS

13

vendredi 10 septembre 2010

NAVIGATION CONDITIONNELLE <IF/>

14

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

vendredi 10 septembre 2010

AJOUT D’UN COMMENTAIRE

15

vendredi 10 septembre 2010

PROBLÈME DE DOUBLE SOUMISSION

• Solution : GET

16

vendredi 10 septembre 2010

REDIRECTION AVEC JSF 2

•Outcome suffixé par ?faces-redirect=true

•<redirect/> dans navigation-rule

17

vendredi 10 septembre 2010

18

•?faces-redirect=true en suffixe des outcome

•<redirect/> sur la navigation-case

EXEMPLES :

vendredi 10 septembre 2010

URL BOOKMARKABLES

19

vendredi 10 septembre 2010

BOOKMARK & JSF

• 3 composants :

• <h:link/>

• <h:button/>

• <f:viewParam/>

20

vendredi 10 septembre 2010

BOOKMARK & CODE

21

vendredi 10 septembre 2010

AFFICHAGE D’UNE NOTIFICATION

22

vendredi 10 septembre 2010

FLASHSCOPE

23

vendredi 10 septembre 2010

VALIDATION DU COMMENTAIRE

24

vendredi 10 septembre 2010

VALIDATION : AVANT

25

vendredi 10 septembre 2010

VALIDATION : APRÈS

26

vendredi 10 septembre 2010

ANNOTATIONS DISPONIBLES

Contraintes disponibles :

•@CreditCardNumber, @Email, @URL

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

• @Past, @Future...

27

vendredi 10 septembre 2010

AJOUT D’UN COMMENTAIRE EN AJAX

28

vendredi 10 septembre 2010

<F:AJAX/> ATTRIBUTS

execute & render, valeurs possibles :

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

eventchange, click...

29

vendredi 10 septembre 2010

LE CODE

30

vendredi 10 septembre 2010

VALIDATION & AJAX

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

31

vendredi 10 septembre 2010

VALIDATION & AJAX 2

32

vendredi 10 septembre 2010

COMPOSANT COMPOSITE TWITTER

•Nécessite l’ajout de ressources statiques

33

vendredi 10 septembre 2010

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

TRAITEMENT DES RESSOURCES

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

35

vendredi 10 septembre 2010

LE CODE

36

vendredi 10 septembre 2010

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

COMPOSITE COMPONENT ET BACKING BEAN

38

vendredi 10 septembre 2010

COMPOSITE COMPONENT ET BACKING BEAN

39

vendredi 10 septembre 2010

AMÉLIORATION DES PERFORMANCES

• ViewState,

• Ajax

40

vendredi 10 septembre 2010

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

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

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

QUESTIONS / RÉPONSES

44

vendredi 10 septembre 2010