4-Cours 4
4-Cours 4
4-Cours 4
Dans les pages JSP, il est toujours très difficile de lire le mélange à la
fois de code HTML et de code Java.
Les JavaBeans sont des classes Java (POJO) qui suivent certaines conventions :
Format:
– <jsp:useBean id="name" class="package.Class" />
But:
– Permettre l’instanciation de classes Java sans programmation Java explicite
(syntaxe compatible XML)
Remarques:
– Interpretation simple :
<jsp:useBean id="book1" class="servlets.Book" />
peut être vu comme équivalent au scriptlet :
<% servlets.Book book1 = new servlets.Book(); %>
Format
–<jsp:setProperty name="name" property="property" value="value" />
But
– Permettre de modifier les propriétes d’un bean properties (i.e., appel de
méthodes setXxx) sans programmation Java explicite
Remarques
– <jsp:setProperty name="book1" property="title" value=" JEE " />
est équivalent au scriptlet :
– <% book1.setTitle("JEE"); %>
Format
– <jsp:getProperty name="name" property="property" />
But
– Permettre d’accéder propriétés d’un bean (i.e., appel de méthodes getXxx) sans
programmation Java explicite
Remarques
– <jsp:getProperty name="book1" property="title" />
package beans;
public class StringBean {
request
– <jsp:useBean id="..." type="..." scope="request" />
session
– <jsp:useBean id="..." type="..." scope="session" />
application
– <jsp:useBean id="..." type="..." scope="application" />
page
– <jsp:useBean id="..." type="..." scope="page" />
– Ce scope n’est pas utilisé dans MVC
Servlet
ValueObject value = new ValueObject (request.getParameter(“ObjectID"));
request.setAttribute("key", value);
request.getRequestDispatcher("SomePage.jsp").forward(request, response);
JSP 1.2
<jsp:useBean id="key" type="somePackage.ValueObject” scope="request" />
<jsp:getProperty name="key" property="someProperty" />
<jsp:forward page=" SomePage.jsp" />
JSP 2.0
${key.someProperty}
Servlet
ValueObject value = new ValueObject(...);
HttpSession session = request.getSession();
session.setAttribute("key", value);
request.getRequestDispatcher("SomePage.jsp").forward(request, response);
JSP 1.2
<jsp:useBean id="key" type="somePackage.ValueObject" scope="session" />
<jsp:getProperty name="key" property="someProperty" />
<jsp:forward page=" SomePage.jsp" />
JSP 2.0
${key.someProperty}
Prof. M. Achkari Begdouri - Dép. Informatique - FP Larache 16
Utilisation du JSTL (JSP Standard Tag Lib)
Maintenant, les balises JSTL sont prêtes à être utiliser dans la page JSP:
<body>
<c:out value="test" />
</body>
<c:choose>
<c:when test="${expression}">Action ou texte.</c:when>
...
<c:otherwise>Autre action ou texte.</c:otherwise>
</c:choose>
Il existe plusieurs Frameworks JEE, mais parmi les plus répandus on trouve :
JSF (Java Server Faces) : Pour gérer tous ce qui est vues, et Beans (Managed Beans)
Hibernate : Pour gérer la persistance des données et le mapping Objet-Relationnel
Spring : Pour gérer les sessions Hibernate, les transactions, l’injection des
dépendances (CDI : Context and Dependency Injection), l'inversion de contrôle (IOC :
Inversion of Control) sécurité, Web services, synchronisation avec JSF, …
Spring est un Framework à tout faire !!