problem including a jsp file into a jsf
alban_coul Dec 7, 2006 12:11 PMHello,
Using jboss 4.0.4 with SEAM.
I have a problem when I use <jsp:include> into my jsf, it seams that SEAM instanciates as much databean as included page, so my conversation gets crazy!
I need to include them because I use a tabpane.
I am just wondering what to do, to be able to include jsp files into jsf page.
Here is the code of the main page :
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%> <%@ taglib uri="http://fmk.xxxx.fr/faces/cpage.tld" prefix="c"%> <%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%> <script language="JavaScript" src="<%=request.getContextPath()%>/js/navbox.js"></script> <f:view> <c:page> <h:form id="priseEnChargeExterneMinimaleForm"> <c:document userContext="#{UserBean.userContext}"> <f:facet name="htmlHead"> <h:panelGroup> <f:loadBundle basename="fr.cpage.patient.priseencharge.web.messages" var="msg" /> </h:panelGroup> </f:facet> <f:facet name="topBody"> <h:panelGrid> <c:commandButton value="#{msg.enregistrer}" action="#{priseEnChargeExterneMinimale.enregistrer}" /> </h:panelGrid> </f:facet> <t:stylesheet path="/css/prise-en-charge.css" /> <t:stylesheet path="/css/menu-carte.css" /> <h:panelGrid columns="1" columnClasses="paddingLienPopup"> <f:subview id="menuCarte"> <jsp:include flush="true" page="../popup/menu-carte.jsp" /> </f:subview> </h:panelGrid> <h:panelGrid columns="7" styleClass="valignCenter"> <h:outputLabel for="nom_usage_requis" value="#{msg.pecu_libelle_nom_usage}" /> <h:inputText size="25" id="nom_usage_requis" value="#{identiteDatabean.nomUsage}" /> <h:outputLabel for="prenomUsage" value="#{msg.pecu_libelle_prenom}" /> <h:inputText size="25" id="prenomUsage" value="#{identiteDatabean.prenomUsage}" /> <h:outputLabel for="dossier" value="#{msg.pecu_libelle_numero_dossier}" /> <h:panelGrid columns="3" id="dossier" cellpadding="0" cellspacing="0"> <h:outputText value="(#{dossierDatabean.etat})" /> <h:outputText binding="#{priseEnChargeExterneMinimale.numeroDossierOutput}" value="#{dossierDatabean.numeroHospitalisation}" /> <h:inputText size="10" binding="#{priseEnChargeExterneMinimale.numeroDossierInput}" value="#{dossierDatabean.numeroHospitalisation}" rendered="false" /> </h:panelGrid> </h:panelGrid> <c:graphicImageSpacer /> <t:panelTabbedPane binding="#{priseEnChargeExterneMinimale.onglets}"> <t:panelTab label="#{msg.pecem_label_onglet_identite}"> <f:subview id="ongletIdentite"> <jsp:include flush="true" page="pecem-identite-onglet.jsp" /> </f:subview> </t:panelTab> <t:panelTab label="#{msg.pecem_label_onglet_personne_en_relation}"> <f:subview id="ongletPersonneEnRelation"> <jsp:include flush="true" page="pecem-personne-en-relation-onglet.jsp" /> </f:subview> </t:panelTab> <t:panelTab label="#{msg.pecem_label_onglet_dossier_mouvement}"> <f:subview id="ongletDossierMouvement"> <jsp:include flush="true" page="pecem-dossier-mouvement-onglet.jsp" /> </f:subview> </t:panelTab> </t:panelTabbedPane> </c:document> </h:form> </c:page> </f:view>
And here the code of an included page :
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%> <%@ taglib uri="http://fmk.xxxx.fr/faces/cpage.tld" prefix="c"%> <h:panelGrid width="920"> <h:panelGrid width="460"> <h:outputLabel for="nisAQS" value="#{msg.ra_libelle_aqs}" /> <h:panelGrid columnClasses=", paddingCodeLibelle" cellpadding="0" cellspacing="0"> <h:inputText id="nisAQS" size="5" value="#{identiteDatabean.aqsHebergeur }" /> <h:inputText id="hebergeurAQS" size="16" value="#{identiteDatabean.aqsNis }" /> </h:panelGrid> <h:outputLabel for="nom_naissance_requis" value="#{msg.pecu_libelle_nom_naissance}" /> <h:inputText size="25" id="nom_naissance_requis" value="#{identiteDatabean.nomFamille}"> </h:inputText> <h:outputLabel for="nomMarital" value="#{msg.pecu_libelle_nom_marital}" /> <h:inputText size="25" id="nomMarital" binding="#{priseEnChargeExterneMinimale.nomMarital}" /> <h:outputLabel for="sexe" value="#{msg.ra_libelle_sexe}" /> <h:selectOneListbox id="sexe" onchange="submit()" valueChangeListener="#{priseEnChargeExterneMinimale.sexeChanged}" value="#{identiteDatabean.sexe}" size="1"> <f:selectItems value="#{identiteDatabean.sexes}" /> </h:selectOneListbox> <h:outputLabel for="date_naissance_requise" value="#{msg.pecu_libelle_ne_le}" /> <h:inputText id="date_naissance_requise" size="10" value="#{identiteDatabean.dateNaissance}"> <f:convertDateTime timeZone="Europe/Paris" pattern="dd/MM/yyyy" locale="FR_fr" /> </h:inputText> <h:outputLabel for="situationFamille" value="#{msg.pecu_libelle_situation_de_famille}" /> <h:selectOneListbox id="situationFamille" value="#{identiteDatabean.situationFamilleSelectionne}" size="1"> <f:selectItems value="#{identiteDatabean.situationsFamille}" /> </h:selectOneListbox> <h:outputLabel value="#{msg.pecu_libelle_validite}" /> <h:selectBooleanCheckbox id="validite" value="#{identiteDatabean.validePatient}" /> </h:panelGrid> <h:panelGrid width="460"> <h:outputLabel for="nip" value="#{msg.pecu_libelle_nip}" /> <h:outputText id="nip" value="#{identiteDatabean.codeNip}" /> <h:outputLabel for="adresse_premiere_ligne_requise" value="#{msg.pecu_libelle_adresse_de_residence}" /> <h:inputText id="adresse_premiere_ligne_requise" size="33" value="#{identiteDatabean.rue}"> </h:inputText> <h:outputLabel /> <h:inputText id="adresseDeuxiemeLigne" size="33" value="#{identiteDatabean.premiereLigne}" /> <h:outputLabel for="codePostalcommune" value="#{msg.pecu_libelle_code_postal_commune}" /> <h:panelGrid columnClasses=", paddingCodeLibelle" id="codePostalcommune" cellpadding="0" cellspacing="0"> <c:inputCompleteText value="#{identiteDatabean.codeDepartementDomicile}" size="5" id="code_postal_requis"> </c:inputCompleteText> <c:inputCompleteText value="#{identiteDatabean.libelleDepartementDomicile}" size="25" id="commune_requise"> </c:inputCompleteText> </h:panelGrid> <h:outputLabel for="pays" value="#{msg.pecu_libelle_pays}" /> <h:panelGrid columnClasses=", paddingCodeLibelle" id="pays" cellpadding="0" cellspacing="0"> <c:inputCompleteText value="#{identiteDatabean.codeIsoPaysDomicile}" size="3" id="code_pays_requis"> </c:inputCompleteText> <c:inputCompleteText value="#{identiteDatabean.libellePaysDomicile}" size="25" id="pays_requis"> </c:inputCompleteText> </h:panelGrid> <h:outputLabel for="modifieeLe" value="#{msg.pecu_libelle_adresse_modifiee_le}" /> <h:outputText id="modifieeLe" value="#{identiteDatabean.dateDerniereModificationDomicile}"> <f:convertDateTime timeZone="Europe/Paris" pattern="dd/MM/yyyy" locale="FR_fr" /> </h:outputText> <h:outputLabel for="telephoneDomicile" value="#{msg.pecu_libelle_telephone_domicile}" /> <h:panelGrid columnClasses=" , , paddingLR" columns="3" cellpadding="0" cellspacing="0"> <h:inputText size="10" id="telephoneDomicile" value="#{identiteDatabean.telDomicile}" /> <h:selectBooleanCheckbox id="lrd" value="#{identiteDatabean.telDomicileListeRouge}" /> <c:graphicImageRedPhone /> </h:panelGrid> <h:outputLabel for="telephonePortable" value="#{msg.pecu_libelle_portable}" /> <h:panelGrid columnClasses=" , , paddingLR" cellpadding="0" cellspacing="0" columns="3"> <h:inputText size="10" id="telephonePortable" value="#{identiteDatabean.telPortable}" /> <h:selectBooleanCheckbox id="lrp" value="#{identiteDatabean.telPortableListeRouge}" /> <c:graphicImageRedPhone /> </h:panelGrid> </h:panelGrid> </h:panelGrid>
Any help would be appreciated.
Thanks.
Alban