Comment inclure une page JSP dans un Facelets page?
Je suis à l'aide de Myfaces 2 sur Facelets.
- Je inclure une page JSP dans une Facelet page.
J'ai essayé d'utiliser <ui:include>
mais il ne prend que des pages XHTML.
J'ai aussi essayé d'utiliser <c:import>
et <f:subview>
mais rien n'a fonctionné.
Googlé beaucoup mais n'ai pas la réponse exacte.
Comment puis-je atteindre?
Avez-vous pris iframe?
OriginalL'auteur Vinay | 2011-05-24
Vous devez vous connecter pour publier un commentaire.
C'est possible avec un custom
UIComponent
. Mon collègue a écrit un article de blog à propos de ce il y a un an: Facelets et de l'héritage des JSP.C'est un peu de code, mais le principe est simple, le composant ne un
RequestDispatcher#include()
avec une coutumeHttpServletResponseWrapper
qui saisit la production écrite et puis l'écrit sur le corps du composant JSF. Voici des extraits de pertinence:Créer une classe
com.example.component.JspIncludeComponent
Créer une classe
com.example.CharResponseWrapper
Ajouter dans
faces-config.xml
De créer le fichier
my.taglib.xml
(Facelet taglib) dans le répertoire WEB-INFAjouter à
web.xml
(comme expliqué dans http://docs.oracle.com/javaee/6/tutorial/doc/bnawn.html)De cette façon, vous pouvez l'utiliser comme
Dernier mais non le moins, la marque de ses dernières paroles
je confirme que cela fonctionne pour les pages xhtml. Existe-il des inconvénients à faire quelque chose comme ça? À l'instar de certains de demande de carte de la variable utilisée par les différents FacesContexts créés...
Il partage la même requête HTTP, de sorte que le JSP/Servlet a la possibilité d'accéder et de manipuler tous les demande/session/l'application des attributs qui sont également en cours d'utilisation par JSF. Par ailleurs, c'est depuis peu de temps, également disponible en réutilisables composant dans OmniFaces (avec une amélioration de la
HttpServletResponseWrapper
qui prend de codage de caractères en compte). Voir aussi showcase-omnifaces.rhcloud.com/showcase/components/...OriginalL'auteur BalusC
Vous ne pouvez pas. JSP et facelets ne peut être évalué en même temps - vous avez seulement un point de vue gestionnaire, et il traite les facelets, pas de pages Jsp.
<c:import>
si le jsp est accessible via http, et donc sa sortie sera inclus, pas le code.OriginalL'auteur Bozho