Présentation des frameworks : XSTREAM/JSF

Sommaire :

Lien vers le projet :

JEE.war

Présentation des 2 Frameworks

Présentation XSTREAM :

Présentation

XStream est une bibliothèque Java qui a pour but de faciliter la conversion du langage Java vers le langage XML et le contraire. L'utilisation de la réflexivité Java est mise à contribution pour découvrir la structure du graphe des objets à sérialiser dynamiquement à l'exécution.
Il n'y a pas de ce fait utilisation de fichier XSD, mais des annotation peuvent être ajoutées dans le code Java pour diriger le code XML à produire.
XStream est un logiciel libre distribué selon les termes de la licence BSD.

XStream est actuellement en version 1.3.1 (Version stable: 1.3.1).

Bibliographie

Site officiel : http://xstream.codehaus.org/index.html
Page de téléchargement : http://xstream.codehaus.org/download.html
Tutoriel en français: http://ericreboisson.developpez.com/tutoriel/java/xml/xstream/
Tutoriel d'aprentissage en 2 minutes (anglais) : http://xstream.codehaus.org/tutorial.html
Tutoriel d'utilisation de xStream avec eclipse (anglais) : http://xstream.codehaus.org/faq.html
D'autres tutoriels plus spécifiques sont disponible sur le site officiel
Page Wikipedia (anglais): http://en.wikipedia.org/wiki/XStream
FAQ (anglais): http://xstream.codehaus.org/faq.html

Présentation JSF

Présentation

Java ServerFaces (JSF) est un framework de développement d'applications Web basé sur les composants, qui permet de développer des interfaces client riches tout en respectant le paradigme MVC.
Il bénéficie des apports de Struts dont le créateur Craig McLahanan en est également le principal concepteur et développeur (avec Ed Burns) ainsi que d'autres technologies Java comme Swing avec son modèle événementiel, les servlets et les JSP.
JSF fait partie du standard Java EE, et est donc le fruit du JCP (Java Community Process).
A l'inverse des autres frameworks MVC traditionnels à base d'actions, JSF est basé sur la notion de composants, comparable à celle de Swing ou SWT, où l'état d'un composant est enregistré lors du rendu de la page, pour être ensuite restauré au retour de la requête.
JSF est agnostique à la technologie de présentation. Il utilise JSP par défaut, mais peut être utilisé avec d'autres technologies, comme par exemple Facelets ou XUL.

JSF est actuellement en version 1.2 (JSR 252).
Les spécifications de la version 1.0 et 1.1 étaient définies dans la JSR 127.
La version 2.0 est en cours de préparation via la JSR 314.

Bibliographie

Site officiel : http://java.sun.com/javaee/javaserverfaces
Page de téléchargement : http://java.sun.com/javaee/javaserverfaces/download.html
Tutoriel : http://schmitt.developpez.com/tutoriel/java/jsf/introduction/
Tutoriel avancé : http://schmitt.developpez.com/tutoriel/java/jsf/advanced/
Autres tutoriaux et exemples : http://www.jsftutorials.net
Page Wikipedia : http://en.wikipedia.org/wiki/JavaServer_Faces
FAQ : http://java.developpez.com/faq/jsf
Autre FAQ : http://wiki.java.net/bin/view/Projects/JavaServerFacesSpecFaq
Liste de sites utilisant JSF : http://wiki.java.net/bin/view/Projects/RealWorldJSFLinks

Présentation du mini-projet

Coté persistance :

Coté client :

Partie persistance : XStream

Télécharger XStream sur le site officiel : ICI
Pour le mini-projet, le .jar de XStream a été ajouté au projet Eclipse en tant que librairie.

Création des classes :

Sérialisation :

Désérialisation :

XStream dans notre projet :

Partie MVC : JSF

Généralisation

Les balises

EL et beans managés

Fichier de configuration



<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">

<faces-config>

	<application>    
		<locale-config>
			<default-locale>fr</default-locale>      
		</locale-config>
	</application>

	<managed-bean>
		<managed-bean-name>application</managed-bean-name>
			<managed-bean-class>tests.Application</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>

</faces-config>

Navigation dirigée

Fichier de configuration 2

 <navigation-rule>
			
	<from-view-id>/ModificationClient.jsp</from-view-id>

	<navigation-case>
		<from-outcome>RetourMenu</from-outcome>
		<to-view-id>/index.jsp</to-view-id>
	</navigation-case>

	<navigation-case>
		<from-outcome>RetourListe</from-outcome>
		<to-view-id>/ListeClients.jsp</to-view-id>
	</navigation-case>
	
</navigation-rule>
			

Les tables de données

Les tables de données permettent l’affichage extrêmement aisé de tous les éléments d’une liste.
<html:dataTable value="#{client.contacts}" var="contact">
			
	<core:facet name="header">
		<core:verbatim>Contacts</core:verbatim>
	</core:facet>
        <html:column>
		<html:outputText value="#{contact.pseudo}"/>
	</html:column>
	
</html:dataTable>
			

Le binding

Défauts