Développement Web
Transcription
Développement Web
Développement Web - JSP + EL Développement Web - JSP + EL Jean-Michel Richer [email protected] http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique 2010-2011 1 / 32 Développement Web - JSP + EL Plan Plan 1 Préambule 2 Rappel concernant les JavaBeans 3 Mise en pratique 4 Bibliographie 2 / 32 Développement Web - JSP + EL Préambule Préambule Préambule 3 / 32 Développement Web - JSP + EL Préambule Utilisation de la JSP EL Objectifs • découvrir et utiliser JSP (Expression Language) • comparaison avec les tags JSP de base 4 / 32 Développement Web - JSP + EL Préambule A quoi sert JSP EL ? Definition (JSP EL) syntaxe adaptée afin de manipuler les données membres des JavaBeans ainsi que des containers tels les tableaux, listes, mappings qui sont stockés en tant qu’attributs d’une application web 5 / 32 Développement Web - JSP + EL Préambule Avantages de JSP EL Avantages de JSP EL • plus élégant et compact que les balises JSP • on peut accèder à des propriétés en cascade comme on peut le faire en Java list.getClient(10).getName(); • si un objet n’existe pas ou son attribut n’existe pas il est remplacé par la chaine vide 6 / 32 Développement Web - JSP + EL Préambule Inconvénient de JSP EL Inconvénient de JSP EL • les balises JSP EL ne créent pas de JavaBean s’il n’a pas déjà été créé dans un attribut. • cependant, lorsque l’on utilise le modèle MVC, c’est le Servlet qui crée les Beans 7 / 32 Développement Web - JSP + EL Préambule Exemple comparatif Code JSP 1 2 3 4 5 6 7 8 9 10 11 12 13 <jsp:useBean id="customer" scope="session" class="com.commands.model.Customer" /> Welcome <jsp:getProperty name="customer" property="firstName" /> <jsp:getProperty name="customer" property="lastName" /> Hello <%= customer.getFirstName() %> <%= customer.getLastName() %> <% out.println(customer.getFirstName()+" "+customer.getLastName()); %> 8 / 32 Développement Web - JSP + EL Préambule Exemple comparatif Code JSP EL 1 <jsp:useBean id="customer" scope="session" 2 class="com.commands.model.Customer" /> 3 4 Welcome ${customer.firstName} 5 ${customer.lastName} 6 7 9 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Rappel concernant les JavaBeans Rappel concernant les JavaBeans 10 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans JavaBean Definition (JavaBean ou Bean) Un JavaBean est une classe Java qui respecte 3 conditions : • possède un constructeur sans arguments dont le but est d’initialiser • les données membres qui ne sont jamais publiques • et qui sont accédées au travers de getters et setters • enfin, on peut éventuellement le sérialiser 11 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Enterprise JavaBean Enterprise JavaBean Un Enterpeise JavaBean (EJB) est un JavaBean beaucoup plus complexe à coder 12 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Exemple de JavaBean Code JavaBean 1 import java.io.Serializable; 2 3 class Person implements Serializable { 4 protected String name; 5 protected boolean male; 6 7 public Person() { 8 name=""; 9 male=true; 10 } 11 public void setName(String name) { 12 13 this.name=name; 14 } 15 16 public void setMale(boolean male) { 17 this.male=male; 18 } 19 20 public String getName() { 21 return name; 22 } 23 24 public boolean isMale() { 25 return male; 26 } 27 } 13 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Accès à un attribut Accès à un attribut • on utilise ${ } afin d’accéder à un attribut simple (String, List, Date, ...) • on recherche l’attribut dans les portées (scope) : page, request, session et application 14 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Accès à un attribut accès à un attribut 1 2 3 4 5 6 7 8 <!-- Code Servlet --> Date today=new Date(); request.setAttribute("today", today); <!-- Code JSP EL dans pase JSP --> <!-- no need to define a Bean --> today is ${today} 15 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Utiliser l’opérateur . L’opérateur . • permet d’accéder à une donnée membre d’un attribut • on peut spécifier la portée en début d’attribut : ex. pageScope, requestScope, sessionScope, applicationScope 16 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Utiliser l’opérateur . Utilisation de l’opérateur . 1 2 3 4 5 6 7 8 9 10 11 12 13 <!-- Code Servlet--> Customer c=new Customer(); session.setAttibute("customer", c); <!-- Code JSP --> Hello <%= customer.getAddress().getStreetName() %> <!-- Code JSP EL --> Hello ${sessionScope.customer.address.streetName} 17 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Utiliser l’opérateur [ ] L’opérateur [ ] • permet d’accéder aux éléments des containers (tableau, liste, mapping) • on spécifie l’index (entier ou chaine) 18 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Utiliser l’opérateur [ ] Utilisation de l’opérateur [ ] 1 2 3 4 5 6 7 <!-- Code Servlet --> String colors[]= { "blue", "white", "red" }; request.setAttribute("frenchFlagColors", colors); <!-- Code JSP EL --> ${frenchFlagColors[0]} ${frenchFlagColors["1"]} 19 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Utiliser la portée param La portée param • permet d’accéder aux éléments de formulaire • sous forme de donnée membre et tableau 20 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Utiliser la portée param Utilisation de param 1 2 3 4 5 6 7 8 <!-- Code HTML --> <form> <label>first name:</label> <input type="text" name="firstName" /> </form> <!-- Code JSP --> Hello ${param.firstName} 21 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Utiliser la portée initParam La portée initParam • permet d’accéder aux éléments du fichier web.xml 22 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Utiliser initParam Utilisation de initParam 1 2 3 4 5 6 7 8 9 10 <!-- fichier web.xml --> <context-param> <param-name>emailAdmin</param-name> <param-value>[email protected]</param-value> </context-param> <!-- Code JSP EL --> Please email to ${initParam.emailAdmin} 23 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Opérateurs EL Opérateur EL EL permet d’utiliser les opérateurs arithmétiques, logiques et de comparaison : • arithmétiques : + − ∗/% • logiques : && || and or not • comparaison : ==, !=, eq, ne, lt, gt, le, ge, <=, >= 24 / 32 Développement Web - JSP + EL Rappel concernant les JavaBeans Opérateurs EL Utilisation des opérateurs arithmétiques et logiques 1 2 3 4 5 6 ${1+1} ${120.3 * 4} ${ "s1" eq "s1" } ${3 lt 4} ${("s1" != "s1") or (4 >= 3)} 25 / 32 Développement Web - JSP + EL Mise en pratique Mise en pratique Mise en pratique 26 / 32 Développement Web - JSP + EL Mise en pratique Exemple 1 EL - Project - jspel project Sous Eclipse créer un projet nommé jspel project.jsp 27 / 32 Développement Web - JSP + EL Mise en pratique Exemple 1 EL - Form - index.jsp Créer une page index.jsp qui contient un formulaire qui permet de saisir les données suivantes : • first name • last name • salary 28 / 32 Développement Web - JSP + EL Mise en pratique Exemple 1 EL - Servlet - Control.java créer un Servlet qui traite les données d’un formulaire et • crée un objet client (Person) qui sera envoyé en request • remplit les données membres avec les données saisies • redirige (dispatch) l’affichage vers un page view.jsp si tous les champs sont définis sinon retourne sur le formulaire de saisie 29 / 32 Développement Web - JSP + EL Mise en pratique Exemple 1 EL - View - view.jsp créer une page view.jsp qui utilise EL et affiche • le nom et prénom de la personne • son salaire actuel • son nouveau salaire qui sera augmenté de 20% 30 / 32 Développement Web - JSP + EL Bibliographie Bibliographie Bibliographie 31 / 32 Développement Web - JSP + EL Bibliographie Bibliographie, sitographie • Développement Web avec J2EE, O’ Reilly, Eric Sarrion, Paris, 2005, ISBN 2-35402-140-2 • Java Servlets and JSP, Joel Murach, Andrea Steelman, Murach, 2nd Edition, 2008, ISBN 9781890774448 32 / 32