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