2012-09-24 3 views
1

J'ai une servlet basée sur JSF 1.2. Je fais une invalidation de session si un utilisateur reste inactif pendant un certain temps. Je dois montrer une boîte de dialogue Jquery à l'utilisateur 1 minute avant l'invalidation de la session et demander si l'utilisateur veut continuer ou se déconnecter. J'ai le code pour la boîte de dialogue Jquery dans une page xhtml (session.xhtml)Inclure une page xhtml dans toutes les pages xhtml

J'ai le code pour la boîte de dialogue Jquery dans une page xhtml (session.xhtml). J'ai presque 15-20 pages dans mon application web. Un utilisateur peut rester inactif dans l'une de ces 15-20 pages. Donc, j'ai besoin d'inclure la page session.xhtml dans toutes mes pages xhtml. Je fais cela en utilisant ci-dessous le morceau de code dans toutes mes pages.

<ui:insert> 
<ui:include src="/session.xhtml" /> 
</ui:insert> 

J'ai 2 problèmes ici.

a) Comme le nombre de pages augmente dans mon application web, je dois continuer à ajouter au-dessus du code à chaque page

b) Code maintenabilité: la ligne, si quelqu'un a d'autre pour développer des pages dans mon application web, il peut ne pas se souvenir d'inclure le code ci-dessus

Donc, la question est, est-il possible de mettre cette page (disons où dans le web.xml ou certains fichiers xml) par lequel par défaut, cette session.xhtml sera disponible pour toutes les pages de mon application web?

+0

Une aide? –

+0

Qu'est-ce qu'un "servlet basé sur JSF 1.2"? Cette phrase au début de votre question n'a aucun sens. JSF a seulement une [servlet] (http://stackoverflow.com/tags/servlets/info), le 'FacesServlet', qui est le contrôleur frontal. En tant que développeur, vous devez généralement écrire des vues (fichiers JSP/XHTML) et des modèles (classes de bean backing) uniquement. – BalusC

+0

En relation: http://stackoverflow.com/questions/4792862/how-to-include-another-xhtml-in-xhtml-using-jsf-2-0-facelets – BalusC

Répondre

1

Le fichier de vue peut avoir un modèle (ce qui est une bonne pratique):

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:ui="http://java.sun.com/jsf/facelets" 
       xmlns:a="http://richfaces.org/a4j" 
       ... 
       template="../layout/maintemplate.xhtml"> 

vous pouvez mettre logique commune dans maintemplate.xhtml. espérons que cela aide.

+0

Votre solution est meilleure que ce que j'ai mentionné dans mon message. Au lieu d'écrire 3 lignes de code, votre solution nécessite 1 ligne de code. Mais, le problème existe toujours. Cette 1 ligne de code doit être mise dans toutes les pages xhtml. Je cherchais un moyen de mettre cette page dans certains visages-config.xml ou web.xml (je ne suis pas sûr) qui sera appliqué à toutes les pages xhtml. Faites-moi savoir si une solution peut être trouvée dans cette direction. –