If you can't read please download the document
Upload
damien-gouyette
View
10.311
Download
3
Embed Size (px)
DESCRIPTION
Présentation JSF2
Citation preview
2. Damien GOUYETTE Franois PETITIT 3. Intervenant
Expert technique java / JEE au sein de GENERALI. Il assure au sein d'une quipe transverse, du support, de la documentation, et participe ladfinition des normes de dveloppement. Damien GOUYETTE est plus particulirement spcialis dans le dveloppement d'IHM Blog :http://www.cestpasdur.com
Consultant chez OCTO Technology, Franois s'intresse tout particulirement l'univers Java/JEE. C'est au cours d'une mission dans une quipe transverse d'aide aux projets Java qu'il a rencontr Damien Gouyette, avec qui il a pu approfondir la technologie JSF. 4. Objectifs de la prsentation
5. Les nouveauts de JSF 2 6. Sommaire
7. 2 - Le framework JSF 8. 3 - Les outils 4 - Conclusion 9. Introduction
10. Maximiser la productivit des dveloppeurs
11. Masquer la complexit 12. Introduction
1.0 1.1 1.2 2.0 2004 2005 2006 2007 2008 2009 JSR 252 JSR 127 JSR 314 Version initiale Correction debugs Amliorations et corrections JEE 6 multiples nouveauts 13. Excution dans le navigateur Plug-in requis Excution ct serveur
1 - Introduction JSF Wicket Spring MVC GWT DOJO Applet JavaFX Flex Silverlight 14. Sommaire
15. 2 - Le framework JSF 16. 3 - Les outils 4 - Conclusion 17. 2 - Le framework JSF 2.1 JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orient composants 2.6 - AJAX2.0 2.7 Templating de pages2.0 2.8 JSP vs Facelet 2.9 -Traitement des ressources 18. 2.1 - JSF2 et JEE
19. Fait partie de JEE 6 : 20. 2.1 - JSF 2 et JEE
21. JavaServer Pages (JSP) 2.2 22. Expression Language (EL) 2.2 23. Debugging Support for Other Languages (JSR-45) 1.0 24. Standard Tag Library for JavaServer Pages (JSTL) 1.2 25. JavaServer Faces (JSF) 2.0 26. Common Annotations for Java Platform (JSR-250) 1.1 27. Enterprise JavaBeans (EJB) 3.1 Lite 28. Java Transaction API (JTA) 1.1 29. Java Persistence API (JPA) 2.0 30. 2 - Le framework JSF 2.1 JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orient composants 2.6 - AJAX2.0 2.7 Templating de pages2.0 2.8 JSP vs Facelet 2.9 -Traitement des ressources 31. MVC 2 et JSF 2 Controller web.xml Faces-config (facultatif) Back office ManagedBeans Vue Client Ct client Ct serveur B.O. 32. 2. Le framework JSF 2.1 JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orient composants 2.6 - AJAX2.0 2.7 Templating de pages2.0 2.8 JSP vs Facelet 2.9 -Traitement des ressources 33. 2.3 - Cycle de vie Le cycle de vie = les tapes ct serveur lors d'une requte : Restauration de la vue Conversions Validations Mises--jour des managed beans Invocation du mtier & navigation Cration de la rponse Requte Rponse 34. 2.3 Conversion
35. Support des types primitifs, des dates, 36. Support de convertisseurs personnaliss et configurables. 37. Configuration de l'affichage. Exemple : affichage de dates ->Mardi 13 octobre 2008 38. 2.3 - Validation
39. Avec des validateurs personnaliss implmentant l'interface javax.faces.validator. Permet de valider au plus tt avec des validateurs personnaliss. Exemples : validation d'adresse mail... Dans le managed bean
Dans les entits et/ou dans les managed beans en utilisant la JSR-303 ( Hibernate validator ), en utilisant le tag f:validateBean 40. Sommaire : le framework 2.1 JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orient composants 2.6 - AJAX2.0 2.7 Templating de pages2.0 2.8 JSP vs Facelet 2.9 -Traitement des ressources 41. 2.4 - managed Bean
Scope :
42. Session 43. View2.0 44. Request 45. 2.4 - ManagedBean
bidonBean org.parisjug.jsf.controller.ContactManagedBean request @ManagedBean @RequestScoped public class ContactManagedBean { } 46. 2.4 - Vues ManagedBean
@ManagedBean 2.0 @RequestScoped 2.0 public classContactBean{ // proprits et accesseurs private Stringname ; //code mtier Public Stringadd (){ return success ; } } ... ... ContactBean.java new.xhtml 47. Sommaire : le framework 2.1 JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orient composants 2.6 - AJAX2.0 2.7 Templating de pages2.0 2.8 JSP vs Facelet 2.9 -Traitement des ressources 48.
49. Un composant peut tre une simple zone de texte, ou complexe (table pagine). 50. Exemples de composants complexes : tables pagines, diteur WYSIWYG... 51. Gestion d'vnements sur les composants (sans AJAX) 52. Les composants vivent sur le serveur
53. L'tat des composants est restaurpuis sauvegard chaque cycleRequte / Rponse. 54. 2.5 - Les composants Navigateur client Form Label:nom InputText:nom Label:prenom InputText: prenom Button:ok Panel Panel Ct serveur View 55. 2.5 - Les composants
//Dclaration des attributs du composant < composite:interface > < composite:attribute name="qui" required="true" /> // Implmentation du composant < composite:implementation > Hello# {cc.attrs.qui} < ez :hello qui="world"/> 56. Ezcomp demo 57. 2.5 - Les composants
58. Sommaire : le framework 2.1 JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orient composants 2.6 - AJAX2.0 2.7 Templating de pages2.0 2.8 JSP vs Facelet 2.9 -Traitement des ressources 59. 2.6 - AJAX
60. Optimisation : traitement et rendu partiels 61. Ajax demo 62. Sommaire : le framework 2.1 JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orient composants 2.6 - AJAX2.0 2.7 - Templating de pages2.0 2.8 - JSP vs Facelet 2.9 -Traitement des ressources 63. Templating / rutilisation
< h1>Hello world
64. 2.8 JSPVS.Facelet
65. Tags JSP rcuprent leurs valeurs la phase 1 (restore_view) Facelet : arbre de composant
66. Bnfices du cycle de vie (conversion, validation...) 67. Plus lent que les JSP du fait du cycle de vie. 68. Templating / rutilisation 69. 2.9 Ressources statiques
70. /META-INF/resources Structure des resources
71. [] = facultatif 72. EL : #{resource[':']}
73. Facelet demo 74. En plus...
75. Diffrents profils d'utilisation : dveloppement, production, unitTest, etc.2.0 76. Support de Groovy pour les composants JSF (managed beans, validateurs, convertisseurs...) 77. Disponibilit de GET en plus de POST :Bookmark 2.0 78. Sommaire
79. 2 - Le framework JSF 80. 3 - Les outils 4 - Conclusion 81. Les outils
Serveurs d'application
IDE
Cration d'un composant
82. Les outils
83. public void testHelloWorld() { JSFClientSession client = new JSFClientSession("/index.faces"); JSFServerSession server = new JSFServerSession(client); client.setParameter(input_name_text, Damien); client.submit(submit_button); assertEquals("/hello.jsp", server.getCurrentViewID()); assertTrue(client.getWebResponse().getText().contains(Hello, Damien)); assertEquals("Damien", server.getManagedBeanValue("#{name.text}")); } Outils web gnriques pour des tests black-box : Selenium, HTTPUnit... 84. Sommaire
85. 2 - Le framework JSF 86. 3 - Les outils 4 - Conclusion 87. Synthse des nouveauts de JSF 2 Nouvelles fonctionnalits Simplification AJAX inclus et optimis Dveloppement de composants facilit Profils d'utilisation Navigation facilite Externalisation des ressources statiques Rduction de la conf XML grce aux annotations Nouveaux scopes pour les managed beans Support de GET en plus du POST 88. Pour aller plus loin
89. Refcard JSF2 :http://refcardz.dzone.com/refcardz/javaserver-faces-20 90. Le site de la spcification JSR-314 :http://jcp.org/en/jsr/detail?id=314 91. Blog Ed Burns, un des spec leader :http://www.java.net/blogs/edburns 92. Liste des librairies tierces-parties :http://www.jsfmatrix.net/ 93. Le livre d'Antonio Goncalves sur JEE 6 en gnral: Beginning Java EE 6 platform with Glassfish v3 94. Questions / Rponses 95. Sponsors 96. Merci de votre attention! 97. Licence