Un point sur les facelets et JSF

Pour mener à terme le développement de MonDossierWeb en portlet , plusieurs questions se posent:

-Est-il possible de faire marcher les tags ADF (la librairie de tag d’Oracle) en facelets?

-Comment avoir un système de template qui fonctionne pour portlet et servlet?

-Peut-on faire sans les tags esup utilisés dans esup-example ?

-Peut-on faire un Look-and-feel proche de l’original?

-Comment peut-on générer des fichiers pdf et excel sans passer par le xsl comme c’était le cas dans MonDossierWeb jusqu’ici?

Voici, pour l’instant, où en est notre réflexion :

-Est-il possible de faire marcher les tags ADF (la librairie de tag d’Oracle) en facelets ?

Sur ce point, il n’y a aucun problème car il existe une librairie (adf-facelets.jar) qui fournie les tags ADF pour facelets. Nous ne l’avons pas encore testée mais nous le ferons d’ici peu. Voici un lien qui en explique rapidement le fonctionnement : lien

 

-Comment avoir un système de template qui fonctionne pour portlet et servlet?

Cette question est primordiale et voici comment nous avons pensé la résoudre : Chaque page xhtml se compose de la manière suivante :

<div xmlns:h=”http://java.sun.com/jsf/html”

xmlns:e=”http://commons.esup-portail.org”

xmlns:ui=”http://java.sun.com/jsf/facelets”>

<ui:composition template=”template.xhtml”>

<ui:define name=”body”>

[CODE DE LA PAGE]

</ui:define>

</ui:composition>

</div>

De cette façon il suffit de modifier le ‘template.xhtml’ pour qu’il corresponde aux servlets (avec balise <html>) ou aux portlets (sans balise <html>). Nous avons donc créé deux templates (template-servlet.xhtml et template-portlet.xhtml) et il suffit de copier celui désiré en ‘template.xhtml’.

Voici un exemple basique (ce n’est pas le template final qui affiche le menu de la portlet) du template-servlet.xhmtl :

 

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml”

xmlns:ui=”http://java.sun.com/jsf/facelets”

xmlns:h=”http://java.sun.com/jsf/html”

xmlns:f=”http://java.sun.com/jsf/core”>

<head>

<title><ui:insert name=”pageTitle”>MonDossierWeb</ui:insert></title>

</head>

<body>

<p><ui:insert name=”body”>Page Body</ui:insert></p>

</body>

</html>

 

Et voici maintenant un exemple de template-portlet.xhtml

 

<div xmlns:h=”http://java.sun.com/jsf/html”

xmlns:e=”http://commons.esup-portail.org”

xmlns:ui=”http://java.sun.com/jsf/facelets”>

<h1><ui:insert name=”pageHeader”>MonDossierWeb</ui:insert></h1>

<p><ui:insert name=”body”>Page Body</ui:insert></p>

</div>

 

-Peut-on faire sans les tags esup utilisés dans esup-example ?

Pour savoir si il était possible de faire sans les tags esup (qui sont des tag jsf, donc difficilement utilisables en facelets) nous les avons listés et pour chacun d’eux, nous avons défini son rôle afin de déterminer si il nous était utile et si c’était le cas, si nous pouvions nous arranger pour obtenir le même résultat par un moyen détourné.

Il s’est avéré que la plupart d’entre eux sont effectivement utiles mais qu’il est possible d’obtenir le même résultat avec des tags ‘normaux’ html. Le seul qui soit vraiment compliqué est le tag ‘page’ qui initialise un certain nombre de paramètres. Peut-être devrons nous créer notre tag facelets qui fait la même chose…

 

-Peut-on faire un Look-and-feel proche de l’original?

Comme MonDossierWeb est à l’origine basé sur du xsl, il est tout à fait possible de récupérer les tags html de ces fichiers, et comme le css de uportal ne change pas cela fonctionne très bien. On peut donc, en changeant quelques tags qui ne fonctionnent pas en facelets bien sur, notamment pour afficher les attributs d’une classe, obtenir un rendu quasi identique à l’application de départ. En voici la preuve après une après midi de test de mise au point des templates :

lookANdFeel1

 

Le rendu est effectivement très proche de l’original.

 

-Comment peut-on générer des fichiers pdf et excel sans passer par le xsl comme c’était le cas dans la MonDossierWeb jusqu’ici?

Sur ce point rien n’est encore défini car s’il est vrai que l’on peut facilement créer des fichiers excel et pdf en java, est-il possible de le faire depuis le rendu html de notre page pour le retourner ensuite à l’utilisateur. Nous allons nous pencher sur JFree qui est une librairie java qui permet de faire des sorties pdf et excel en se basant sur du xml.

3 réponses vers «Un point sur les facelets et JSF»

  1. ziller Dit:

    Pour les PDF, il faudra regarder du côté de iText
    http://www-igm.univ-mlv.fr/~dr/XPOSE2004/sguinchard/iText/presentation.html

  2. Un point sur le ‘LookAndFeel’ : « Mon Dossier Web Dit:

    [...] point sur le ‘LookAndFeel’ : Nous avions précisé dans les premiers post (‘Un point sur les facelets et JSF‘) de ce blog qu’il était possible de garder le ‘Look And Feel’ de l’application [...]


Laisser un commentaire