La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 T O G E T H E RT A L E N T E D Unissons nos Talents T O G E T H E RT A L E N T E D Présentation dApache Wicket – 14/04/2008 Apache Wicket : Application.

Présentations similaires


Présentation au sujet: "1 T O G E T H E RT A L E N T E D Unissons nos Talents T O G E T H E RT A L E N T E D Présentation dApache Wicket – 14/04/2008 Apache Wicket : Application."— Transcription de la présentation:

1 1 T O G E T H E RT A L E N T E D Unissons nos Talents T O G E T H E RT A L E N T E D Présentation dApache Wicket – 14/04/2008 Apache Wicket : Application Web simplement avec Java Nicolas Giard

2 2 Présentation dApache Wicket – 14/04/2008 Agenda Quest ce que Wicket ? Concepts Fondamentaux Développer un Composant Personnalisé Q&R

3 3 Présentation dApache Wicket – 14/04/2008 Wicket en bref Open Source (Apache Sofware Foundation) Orienté Composant Pure Java + Pure xHTML Simple Communauté enthousiaste

4 4 Présentation dApache Wicket – 14/04/2008 Quest ce que Wicket La technologie : Orienté Composant, manipulation Programmatique des balises La mission : Apporter le développement objet à la couche présentation dune application Web La récompense : Samuser dans son travail et être de nouveau bons amis avec son manager

5 5 Présentation dApache Wicket – 14/04/2008 Les réponses de Wicket Faire simplement des choses simples. Utiliser un modèle de Composant Orienté Objet où les composants sont réellement autonomes. Réappliquer le pattern Modele-Vue-Controleur sur les composants plutôt que sur les requètes, avec les modèles comme point dentrée. Avoir une séparation de contenu propre entre HTML et Java. Proposer une gestion détat transparente et complètement automatisée. Réduire au minimum les besoins de configuration. Plus dXML! Rendre la création et lutilisation de composants personnalisés plus simple que nimporte quel autre framework.

6 6 Présentation dApache Wicket – 14/04/2008 Composant vs Traditionnel Traditionnel Struts, WebWork, Spring MVC, etc. Eprouvé sur le web Beaucoup de développeurs Web disponibles Composants JSF, Wicket, Tapestry, etc. Modèle traditionnel pour le développement d'UI sur les clients lourds Beaucoup de développeurs disponibles

7 7 Présentation dApache Wicket – 14/04/2008 Caractéristiques Composition des Pages Panels, Borders et héritage de balise Support excellent de la localisation et des styles Chargement de template et de resource (_fr.html,.xml) Model localisé (e.g. pour les labels) Chargement sophistiqué des ressources (par composition & héritage) Détection automatique des possibilités du client Mécanisme de conversion Intégration Spring Guice Hibernate JasperReports OSGi Composants fantaisistes triable, filtrable, paginable, tableau orienté données date picker, editeur de texte, Google Maps Panneaux à Onglets, navigation, arbre, wizard

8 8 Présentation dApache Wicket – 14/04/2008 Caractéristiques Gestion de létat Sessions à type sûr Support du clustering Support du bouton précédent Double stratégies de submit render redirect / redirect to buffered response / none Support des Test Unitaires Tests basés sur JUnit Rapports derreur et gestion des logs étendus Support natif dAjax Ajax sans écrire de JavaScript, Dojo, Scriptaculous,... Contribution à len-tête HTML Javascript & CSS Mounting dURL URL intelligible Sécurité au niveau du Composant

9 9 Présentation dApache Wicket – 14/04/2008 Agenda Quest ce que Wicket ? Concepts Fondamentaux Développer un Composant Personnalisé Q&R

10 10 Présentation dApache Wicket – 14/04/2008 Concepts de Wicket Application Session RequestCycle Composants Behaviors Models

11 11 Présentation dApache Wicket – 14/04/2008 Application Point dentrée principal de votre application web Configuration Afficher les tags spécifiques Wicket? Vérifier les changements dans le html tout les …? Définir la page daccueil Factories pour Session RequestCycle Security … Configurée dans le web.xml : wicket org.apache.wicket.protocol.http.WicketFilter applicationClassName example.MyApplication 1

12 12 Présentation dApache Wicket – 14/04/2008 Concepts de Wicket Application Session RequestCycle Composants Behaviors Models

13 13 Présentation dApache Wicket – 14/04/2008 Session Abstraction dune session utilisateur Typiquement stockée dans HttpSession Conserve les données spécifiques à la Session Locale, infos du Client (browser, vendor, version) Vos propres données? Utilisateur authentifié Contenu dun panier pour un site de commerce Historique limité des pages pour le support du bouton Précédent

14 14 Présentation dApache Wicket – 14/04/2008 Session public class MySession extends WebSession { private ShoppingCart cart; public ShoppingCart getCart() { … } public void setCart(ShoppingCart cart) { … } } … mysession.setCart(new ShoppingCart()); … ShoppingCart cart = mysession.getCart(); cart.add(quantity, selectedProduct);

15 15 Présentation dApache Wicket – 14/04/2008 Concepts de Wicket Application Session RequestCycle Composants Behaviors Models

16 16 Présentation dApache Wicket – 14/04/2008 RequestCycle Etapes du Request Cycle: 1. Création de lobjet request cycle 2. Décodage de la requète 3. Identification des cibles de la requète (page, component, …) 4. Exécution des événements (onClick, onSubmit, …) 5. Réponse (page, component, image, pdf, …) 6. Nettoyage

17 17 Présentation dApache Wicket – 14/04/2008 RequestCycle Deux types de requètes: Stateful Liée à une session d'utilisateur spécifique Pas bookmarkable Stateless Pas nécessairement liée à une session dutilisateur spécifique Bookmarkable

18 18 Présentation dApache Wicket – 14/04/2008 Concepts de Wicket Application Session RequestCycle Composants Behaviors Models

19 19 Présentation dApache Wicket – 14/04/2008 Composants Encapsule la manipulation des balises Peut recevoir des événements onClick, onSubmit Sait lui même comment et où il doit safficher Créer un Composant personnalisé est aussi simple que décrire extends Lhéritage de wicket.Component fait le reste Disponible dans le classpath de lapplication

20 20 Présentation dApache Wicket – 14/04/2008 Composants Classe mère Ultime : org.apache.wicket.Component Label MultiLineLabel TextField PasswordTextField Image Link Tree BookmarkablePageLink JasperReports ListView Loop PagingNavigator ImageMap Button Ajax… Sorting, Paging, Repeaters Wizard DatePicker

21 21 Présentation dApache Wicket – 14/04/2008 Composants et balises Un composant est identifié dans le balisage par wicket:id Html: Gets replaced Java: new Label(msg, Hello, World!); Final (les tags wicket peuvent être masqués du source html): Hello, World!

22 22 Présentation dApache Wicket – 14/04/2008 Composants et balises Un composant peut avoir son propre fichier html: Page Panel Border Mettre les fichiers Java, HTML et ressources dans le même package

23 23 Présentation dApache Wicket – 14/04/2008 Example : Hello, World!

24 24 Présentation dApache Wicket – 14/04/2008 Concepts de Wicket Application Session RequestCycle Composants Behaviors Models

25 25 Présentation dApache Wicket – 14/04/2008 Behaviors Les Behaviors sont des plug-ins pour les Composants Ils peuvent modifier les balises HTML des Composants item.add(new AbstractBehavior() { public void onComponentTag(Component component, ComponentTag tag) { String css = (((Item)component).getIndex() % 2 == 0) ? "even" : "odd"; tag.put("class", css); } }); Output: … …

26 26 Présentation dApache Wicket – 14/04/2008 Behaviors Modifier les attributs des balises du Composant Ajouter des évenements javascript Ajouter un comportement Ajax component.add(new AjaxSelfUpdatingBehavior(Duration.seconds(1)));

27 27 Présentation dApache Wicket – 14/04/2008 Concepts de Wicket Application Session RequestCycle Composants Behaviors Models

28 28 Présentation dApache Wicket – 14/04/2008 Models Les Models associent vos POJOs aux composants Wicket Label(nom, model) > +nom : String +ville : String PropertyModel

29 29 Présentation dApache Wicket – 14/04/2008 Models Le binding en Java nest pas aisé Ne fera pas dupdate: new TextField(txt, personne.getNom()) Provoquera une NullPointerException: new Label(rue, personne.getAdresse().getRue()) Solution: les expressions type OGNL/EL PropertyModel: new PropertyModel(personne, nom) new PropertyModel(personne, adresse.rue) Prévenir le NullPointer à lupdate: Personne p = new Personne(); new TextField(rue, new PropertyModel(p, adresse.rue));

30 30 Présentation dApache Wicket – 14/04/2008 Agenda Quest ce que Wicket ? Concepts Fondamentaux Développer un Composant Personnalisé Q&R

31 31 Présentation dApache Wicket – 14/04/2008 Pourquoi un composant personnalisé? Eelco Hillenius: « Imagine being told that you can use Java as your programming language, but at the same time being told not to create your own classes. [...] I fail to understand why that has to be different for UI development, and Wicket proves it doesn't have to be so. »

32 32 Présentation dApache Wicket – 14/04/2008 Combien de temps pour un composant ? 464 pages … 20 minutes et encore…

33 33 Présentation dApache Wicket – 14/04/2008 Example: Password strength weak medium strong

34 34 Présentation dApache Wicket – 14/04/2008 Example: Password strength Les Panels permettent le regroupement Ils ont leur propre ficher html Peuvent être échangé dans les pages par dautres composants Peuvent contribuer au header de la page html Peuvent contenir autant de composants que souhaité, même dautres panels

35 35 Présentation dApache Wicket – 14/04/2008 Example: Password strength

36 36 Présentation dApache Wicket – 14/04/2008 Example: Password strength

37 37 Présentation dApache Wicket – 14/04/2008 Example: Password strength

38 38 Présentation dApache Wicket – 14/04/2008 Les Composants sont reutilisables Mettre le tout dans un JAR Packager toutes les ressources nécessaires: HTML, JavaScript, Images, CSS class file Mettre le JAR dans le classpath Prêt à être (re)utilisé

39 39 Présentation dApache Wicket – 14/04/2008 Agenda Quest ce que Wicket ? Concepts Fondamentaux Développer un Composant Personnalisé Q&R


Télécharger ppt "1 T O G E T H E RT A L E N T E D Unissons nos Talents T O G E T H E RT A L E N T E D Présentation dApache Wicket – 14/04/2008 Apache Wicket : Application."

Présentations similaires


Annonces Google