Framework kde composants UI côté serveur destiné à faciliter le développement

Documents pareils
Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Projet Java EE Approfondi

Application Web et J2EE

Cours en ligne Développement Java pour le web

Refonte front-office / back-office - Architecture & Conception -

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Web Tier : déploiement de servlets

BIRT (Business Intelligence and Reporting Tools)

Ociensa Technologies.

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Java pour le Web. Cours Java - F. Michel

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Diplôme Universitaire Technologique Spécialité Informatique. Période du stage: 05 Avril Juin 2004

Messagerie asynchrone et Services Web

10. Base de données et Web. OlivierCuré

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

SYSTÈMES D INFORMATIONS

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Utilisation de Jakarta Tomcat

< Atelier 1 /> Démarrer une application web

La base de données XML exist. A. Belaïd

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Modules Prestashop - ExportCatalogue / EXPORT IMPORT POUR MODIFICATIONS EN MASSE DANS PRESTASHOP VERSION Optim'Informatique

Compte Rendu d intégration d application

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

Environnements de Développement

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

INTRODUCTION AUX TESTS CODES DE L INTERFACE UTILISATEUR

Best Practices : Utilisation des APIs de Lotus Web Content Management

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

CAS, la théorie. R. Ferrere, S. Layrisse

Formation Découverte du Web

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Devenez un véritable développeur web en 3 mois!

Gestion d identités PSL Exploitation IdP Authentic

Alfstore workflow framework Spécification technique

Applet pour visualiser les variables «automate» notifiées

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Module BD et sites WEB

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

F O R M A T I O N CATALOGUE

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Manipulation 4 : Application de «Change».

Formation en Logiciels Libres. Fiche d inscription

JavaServer Pages (JSP)

BES WEBDEVELOPER ACTIVITÉ RÔLE

Publication dans le Back Office

Cours CCNA 1. Exercices

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Déployer les Fonts, Icones, et Images avec Forms Services 11G

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Introduction à la plateforme J2EE

Jahia CMS ET Portal Version 5.0

Google AdWords : le Guide complet Optimisez vos campagnes pour gagner plus!

GOOGLE ANALYTICS. Ajout du code de suivi sur PowerBoutique. Ajout du code de suivi Google Analytics. Page 1 / 7 TUTO / GOOGLE ANALYTICS

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Auto-évaluation Aperçu de l architecture Java EE

Technologies serveur. Benjamin Canou - Christian Queinnec Cours 4 du 10/12/2012. Architecture des Applications Réticulaires

OBJIS : 10 ans d'expérience en formation JAVA. Programme détaillé formation 'Développeur Java web Mobile' OBJIS Congo

Nuxeo 5.4 : les nouveautés

J2EE - Introduction. Développement web - Java. Plan du chapitre

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

Catalogue des Formations

( Mauritius ) ( France )

L exclusion mutuelle distribuée

Serveur d Applications Web : WebObjects

4. SERVICES WEB REST 46

ERP Agence - MAGICCA. Rapport de stage. Version 1.00 du 7 août 2008 Etat : Projet. Paul Clément, Licence MIAGE. Année Universitaire

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Optimiser pour les appareils mobiles

Développez votre e-commerce avec WebSphere Commerce

Créer une application de livre interactif pour tablette avec Indesign CS6 et Adobe Digital Publishing Suite

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Introduction aux «Services Web»

Joomla! Création et administration d'un site web - Version numérique

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube

Comment configurer. le web.

Drupal un CMS orienté mé2er. Romain JARRAUD Mathieu GROS

Cedric Dumoulin (C) The Java EE 7 Tutorial

Architectures en couches pour applications web Rappel : Architecture en couches

Créer et gérer des catégories sur votre site Magento

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Transcription:

JSF

Introduction Framework kde composants UI côté serveur destiné à faciliter le développement d applications pour le web Validation Navigation Internationalisation Gestion des erreurs Conversion de données S appuie sur le modèle MVC Mapping HTML/Objet Navigation

JSF Balises JSF Composant JavaBeans Ecouteurs Classe de rendu Conversion de données Validation de données

Cycle de vie d une requête/réponse 3 cas JSF Requête non JSF/Réponse JSF Requête JSF/Réponse JSF Requête JSF/Réponse non JSF

Cycle de vie d une requête/réponse JSF Restauration Mise à jour Traitement Traitement Traitement Requête de l état de la de l état de des des des JSF vue la vue événements validations événements Réponse JSF Rendu de la réponse Traitement des événements Appel de l application Traitement des événements Mise à jour du modèle

Cycle de vie d une requête/réponse JSF Phase 1: Construction ti de la vue Si la page correspondante est affichée pour la première fois: Les composants UI de la vue sont créés, stockés dans une structure arborescente (Une vue JSF est une structure arborescente dont la racine est une instance de la classe UIViewRoot, l implémentation JSF Sinon utilise les informations de l objet HttpServletRequest pour constituer cette arborescence) puisl état létat de lavue estsauvegardépourdes sauvegardé des appels ultérieurs. L état Létat précédent de la vue est restauré (par appel récursif de la la méthode UIComponent.restoreState sur les composants de l arbre ) et la vue devient la vue courante, elle peut être accessible par : FacesContext fc= FacesContext.getCurrentInstance(); UIViewRoot vr= fc.getviewroot(); t() Le binding de tous les composants est alors établi

Cycle de vie d une requête/réponse JSF Phase 2: mise à jour de l état t de la vue Lors de cette phase la vue côté serveur est synchronisée avec la vue côté client, les modifications apportées par le client sur la vue sont récupérées é é à l aide de l objet HttpServletRequest (cette mise à jour est effectuée par appel récursif de la méthode UIComponent.processDecodes() Phase 3: Validations Un composant JSF peut posséder un validator ou un converter qui sont invoqués lors de l appel récursif de la méthode UIComponent.processValidators(), si une erreur survient alors JSF passe automatiquement à la phase rendu de la réponse Phase 4: Mise à jour du modèle

Utilisation dans une page JSP Deux bibliothèques jstl html core

Bibliothèque HTML Catégorie Eléments Description i Input Output Sélection Commandes Divers h:inputhidden, h:inputsecret, h:inputtext, h:inputtextarea h:message, h:messages, h:outputformat, h:outputlabel, h:outputlink, h:outputtext h:selectbooleancheckbox, h:selectmanycheckbox, h:selectmanylistbox, h:selectmanymenu, h:selectonelistbox, h:selectonemenu, h:selectoneradio h:commandbutton, h:commandlink h:datatable, h:form, h:graphicimage, h:panelgrid, h:panelgroup, h:column

Bibliothèque de base Catégorie Eléments Description i Vue f:facet, f:subview, f:view Sélection f:selectitem, f:selectitems Ecouteurs Validation f:actionlistener, f:valuechangelistener f:validatedoublerange, f:validatelength, f:validatelongrange, f:validator Conversion f:convertdatetime, t f:convertnumber, f:converter Divers f:facet, f:subview, f:view Création d une vue, sous vue JSF

Développement d une application JSF: Etapes 1. Mapping d une instance de FacesServlet dans le dd web.xml. 2. Création des pages JSF 3. Définition de la navigation dans le fichier de configuration des ressources de l application. 4. Création des backing beans. 5. Déclaration des managed bean dans le fichier de configuration des ressources de l application.

Exemple: guessnumber Mappingde la servlet ltfacesservlet <servlet> <display name>facesservlet</display name> <servlet name>facesservlet</servlet name> <servlet class>javax.faces.webapp.facesservlet </servlet class> l <load on startup>1</load on startup> </servlet> <servlet mapping> <servlet name>facesservlet</servlet name> <url pattern>/guess/*</url pattern> </servlet mapping>

Création de la page greeting.jsp Dans les pages jsp ajouter les déclarations suivantes: <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http:.//java.sun.com/jsf/core" prefix="f" %> Ajouter le tag view : le tag view représente la racine de l arbrorescence des composants JSF Le tag form <f:view> <h:form id="form1"> </h:form> </f:view>

Création de la page greeting.jsp Le tag Label: <h2>bonjour. Mon nom est duke. Je pense à un nombre entre <h:outputtext lang="fr" value="#{usernumberbean.minimum}"/> i et <h:outputtext value="#{usernumberbean.maximum}"/>. maximum}"/> Pouvez vous le deviner?</h2> Le Tag image <h:graphicimage id="waveimg" url="/wave.med.gif" />

Création de la page greeting.jsp d Le tag zone de texte <h:inputtext id="userno" label=«nombre utilisateur" value="#{usernumberbean.usernumber}">... </h:inputtext> L attribut id est utilisé par le tag message. Le contenu de l attribut label est affiché dans le message d erreur de validation L attribut value lie la valeur du composant userno à la propriété UserNumberBean.userNumber

Création de la page greeting.jsp Ajout d un validateur du composant userno Dans le tag outputtext <f:validatelongrange minimum="#{usernumberbean.minimum}" maximum="#{usernumberbean.maximum}" maximum}" /> Message d erreur personnalisé Dans le tag userno on ajoute l attribut suivant: convertermessage="#{errmsg.usernoconvert}" pour surcharger le message d erreur par défaut Remarque: L expression utilisée dans l attribut convertermessage contient une référence à la clé usernoconvert définie le fichier de ressources ErrMsg Dans le noeud application du fichier de configuration JSF faces config.xml: <resource bundle> <base name>guessnumber.applicationmessages</base name> <var>errmsg</var> </resource bundle> Le fichier des propriétés guessnumber.properties (package guessnumber) définit la valeur suivante: usernoconvert=la valeur saisie n'est pas un nombre.

Création de la page greeting.jsp Ajout d un bouton <h:commandbutton id="submit" action="success" value="submit" /> L action success est définie dans le fichier de configuration JSF faces config.xml à l aide d une règle de navigation: <navigation rule> <from view id>/greeting.jsp</from view id> <navigation case> <from outcome>success</from outcome> <to view id>/response.jsp</to view id> </navigation case> </navigation rule>

Création de la page greeting.jsp Affichage des messages <h:message showsummary="true" showdetail="false" style="color: red; font family: New Century Schoolbook, serif; font style: oblique; text decoration: overline" id="errors1" for="userno"/>

Création des beans backing bean: définit les propriétés p et méthodes associées à un composant UI. Exemple: la propriété value du composant userno est liée à la propriété usernumber du backing bean UserNumberBean: <h:inputtext id="userno" label="user Number" value="#{usernumberbean.usernumber}"> Ajout des déclarations Managed Beans dans le fichier faces config.xml <managed bean> <managed bean name>usernumberbean</managed bean name> <managed bean class>guessnumber.usernumberbean</managed bean class> <managed bean scope>session</managed bean scope> <managed property> <property name>minimum</property name> <property class>long</property class> <value>0</value> </managed property> <managed property> <property name>maximum</property name> <property class>long</property class> <value>10</value> </managed property> </managed bean>

Création de la page greeting.jsp

FacesServlet Reçoit les requêtes des clients Initialise les ressources