IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[facelets]probleme de templating avec ui:insert une page s'afficà la place des autres


Sujet :

JSF Java

  1. #1
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut [facelets]probleme de templating avec ui:insert une page s'afficà la place des autres
    Bonjour,

    j'ai un soucis avec mes actions JSF sur une page,j'ai plusieurs actions,chacune dans une forme et elles marchent toutes tres bien,
    le probleme c'est que une fois j'exécute une action en premier lieu,elle s'execute en place de toute les autres actions,

    je m'explique: j'ai 2 actions : a1 et a2,

    si j'exécute a1 en premier lieu,alors meme si je clique sur a2 c'est a1 qui s'exécute!!!!


    et si j'exécute a2 en premier lieu,meme si je clique sur a1 c'est a2 qui s'exécute!!!

    j'espere que vous avez une idée.

    N.B : j'utilise le systeme de templating des facelets.

    merci beaucoup pour votre aide.

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Du code, on veut du code !!!

  3. #3
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut
    D ,voici un exemple du code qui pose ce probleme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <h:form>
     
    		<div id="sidebar" >							
     
    			<h1>Sidebar Menu</h1>
    			<div class="left-box">
    				<ul class="sidemenu">
    					<li>
    					<h:commandLink  value="Account Profile" action="#{offMgtPresentationController.createAccountProfile}">
     
    				</h:commandLink>
     
    					</li>
    					<li><h:commandLink value="Top Up Profile" action="#{offMgtPresentationController.getListAccountProfile}">
     
    					</h:commandLink></li>
    					<li><h:commandLink value="Fee Rating Rule" action="#">
     
    					</h:commandLink>
    					</li>
    					<li><a href="/">Service Offer</a></li>	
    					<li><a href="">Service Offer Group</a></li>	
    					<li><a href="">Package</a></li>	
    					<li><a href="">Commercial Offer</a></li>						
    				</ul>	
    			</div>
     
    			<h1>Search Engine</h1>
     
     
    			<div class="left-box">
     
    				<h:panelGrid columns="2">
    				<h:outputLabel for="objectList" value="Object">
     
    				</h:outputLabel>
    					<h:selectOneMenu  id="objectList" value="#{searchAccountProfileBean.object}" >
    							<f:selectItems value="#{searchAccountProfileBean.objectList}"/>
    						<a4j:support event="onchange" action="#{offMgtPresentationController.returnFieldList}" reRender="fieldList"/>
    				</h:selectOneMenu>
     
     
     
    					<h:outputLabel for="fieldList" value="Field">
     
    					</h:outputLabel>
     
    					<h:selectOneMenu  id="fieldList" value="#{searchAccountProfileBean.field}" >
    							<f:selectItems value="#{searchAccountProfileBean.fieldList}"/>
    				</h:selectOneMenu>
    					<h:outputLabel for="valueTxt" value="Value">
     
    					</h:outputLabel>
    					<h:inputText value="#{searchAccountProfileBean.value}" id="valueTxt"/>
    					<h:outputLabel />
    						<h:commandButton value="Search" action="#{offMgtPresentationController.searchAccountProfile}"/>
     
     
    				</h:panelGrid>
     
    			</div>
     
     
     
     
    		</div>		
    		</h:form>
    Les 2 actions : createAccountProfile et getListAccountProfile me posent ce probleme

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    On peut voir le code du bean ?

  5. #5
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut
    les 2 méthodes sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    public String getListAccountProfile(){
     
     
    		FacesContext facesContext = FacesContext.getCurrentInstance();
    		ApplicationFactory appFactory = (ApplicationFactory) FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
    		Application app = appFactory.getApplication();
    		AccountProfileBean accountProfileBean = (AccountProfileBean) app.createValueBinding("#{accountProfileBean}").getValue(facesContext);
    		ListAccountProfileBean listAccountProfileBean = (ListAccountProfileBean) app.createValueBinding("#{listAccountProfileBean}").getValue(facesContext);
     
    		listAccountProfileBean.getListAccountProfile().clear();
    		try {
    			 goMonitor = new GOMonitorService().getGOMonitorPort();
    						 goMonitor.getAccountProfileList();
    			 ArrayList listAccountsProfile=new ArrayList();
    			 ArrayList listNameAP=new ArrayList();
     
    			 listNameAP=(ArrayList)goMonitor.getListAccountProfile();
    			 IFMessage accountProfilIfm;
    			 AccountProfileBean apBean;
    			 String nameAP;
    			 String nameAPWithPrefixe;
    				for(int i=0;i<listNameAP.size();i++){
     
    					apBean=new AccountProfileBean();;
    					nameAP=listNameAP.get(i).toString();
     
     
     
    					apBean.setAccountProfileNameAP(nameAP);
    					apBean.setNameID(prefixObjectAP+nameAP);
    					listAccountProfileBean.getListAccountProfile().add(apBean);
     
     
    				}
     
    			} catch (Exception ex) {
    				ex.printStackTrace();
    			}
     
     
    			}
    						app.createValueBinding("#{requestScope.accountProfileBean}").setValue(facesContext, accountProfileBean);
    			app.createValueBinding("#{requestScope.listAccountProfileBean}").setValue(facesContext, listAccountProfileBean);
     
    		return "getListAccountProfile";
     
    	}
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    public String createAccountProfile(){
    				FacesContext facesContext = FacesContext.getCurrentInstance();
    		ApplicationFactory appFactory = (ApplicationFactory) FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
    		Application app = appFactory.getApplication();
    				AccountProfileBean accountProfileBean = new AccountProfileBean();
    		ListAccountProfileBean listAccountProfileBean = (ListAccountProfileBean) app.createValueBinding("#{listAccountProfileBean}").getValue(facesContext);
     
     
     
    	try {
    			 goMonitor = new GOMonitorService().getGOMonitorPort();
    						 goMonitor.fillBundleType(null);
    						 goMonitor.fillCounterType();
    						 goMonitor.getAccountProfileList();
    			 accountProfileBean.getListBundles().clear();
    			 accountProfileBean.getListCounters().clear();
    			 accountProfileBean.getListBundlesChosed().clear();
    			 accountProfileBean.getListCountersChosed().clear();
     
    			 ArrayList listBundles=new ArrayList();
    			 ArrayList listCounters=new ArrayList();
    			 ArrayList listAccountsProfile=new ArrayList();
     
    			 listBundles=(ArrayList)goMonitor.getListBundles();
    				for(int i=0;i<listBundles.size();i++){
    					accountProfileBean.getListBundles().add(listBundles.get(i).toString());
    				}
     
    						listCounters=(ArrayList)goMonitor.getListCounters();
    					for(int i=0;i<listCounters.size();i++){
    						accountProfileBean.getListCounters().add(listCounters.get(i).toString());
    					}
     
     
     
    		} catch (Exception ex) {
    			ex.printStackTrace();
    		}
     
    		app.createValueBinding("#{sessionScope.accountProfileBean}").setValue(facesContext, accountProfileBean);
    		return "generalInformations";
    	}
    je définie les regles de navigation sur le faces-config comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <navigation-rule>
      <from-view-id>/template/template.jspx</from-view-id>
      <navigation-case>
       <from-outcome>getListAccountProfile</from-outcome>
       <to-view-id>/AccountProfile/jspx/apList.jspx</to-view-id>
      </navigation-case>
      <navigation-case>
       <from-outcome>generalInformations</from-outcome>
       <to-view-id>/AccountProfile/jspx/GeneralInformations.jspx</to-view-id>
      </navigation-case>
     </navigation-rule>
     <navigation-rule>
    merci pour ton aide

  6. #6
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut
    aucune idée!!

  7. #7
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut
    désolé!! en fait c'etais pas ça le probleme,

    apres pas beaucoup de test,j'ai trouvé que ce sont les bonnes actions qui s'exécutent mais ce sont les pages qui ne s'affiche pas correctement,

    j'utilise le systeme de templating des facelets avec ui:insert.

    j'espere que vous avez une idée

  8. #8
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    <from-view-id>/template/template.jspx</from-view-id>

    C'est quoi cette page ? C'est elle qui est insérée ? C'est la page que tu affiches dans ton browser ? Où sont tes ui:insert etc ? Si tu ne donnes pas un minimum d'indication, c'est pas sûr que quelqu'un trouve une solution

  9. #9
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <from-view-id>/template/template.jspx</from-view-id>
    template.jspx c'est ma template,la page model à partir de laquelle je fais appel aux 2 pages : GeneralInformations.jspx et apList.jspx qui seront insérées dans template.jspx.

    je suis prete pour donner plus d'informations mais je sais pas quoi ajouter maintenant

  10. #10
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    Ben je comprends pas. Tes pages GeneralInformations.jspx et apList.jspx, tu les inséres à partir de template.jspx. Ensuite tu as sur cette même page deux liens avec des actions qui te redirigent sur ces pages là ?
    Et c'est quoi qui ne marche pas alors, l'insertion des deux pages ou la navigation suite à une action sur les boutons ?

  11. #11
    Membre régulier Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Points : 97
    Points
    97
    Par défaut
    j'insere pas mes 2 pages à partir du template.jspx, mais à partir de chacune de ces deux pages je référence ma template pour avoir le meme model.

    à partir de template.jspx j'ai deux lien vers ces 2 pages,quand je clique sur un lien la 1ere fois il m'affiche la bonne page, mais si je clique sur le 2eme lien j'obtiens toujours la 1ere page cible du 1er lien et inversement.Meme si ce sont les bonnes actions qui s'éxécutent ce sont pas les bonnes pages qui s'affichent apres le 1er clique.

    si je veux que la bonne page s'affiche ,je dois cliquer sur le bouttons précédent du navigateur pour revenir à l'état initiale de la page avant tout clique puis cliquer sur le lien de la page que je veux.

    peut etre j'ai du mal à expliquer mon probleme.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    OK, donc il n'y a pas de <ui:insert /> là en fait, ce sont des <ui:composition />.
    Et est ce qu'il ne faudrait pas mettre définir les règles de navigation aussi pour <from-view-id>/AccountProfile/jspx/apList.jspx</from-view-id> et <from-view-id>/AccountProfile/jspx/GeneralInformations.jspx</fromview-id>, en plus de <from-view-id>/template/template.jspx</from-view-id> ?
    Désolé, je suis un peu débordé et j'ai pas d'autre idée qui me vient à l'esprit là tout de suite :p

Discussions similaires

  1. Probleme de join avec result dans une datatable
    Par garciajulien dans le forum Linq
    Réponses: 0
    Dernier message: 02/03/2010, 14h35
  2. Probleme de génération avec Castor d'une balise vide
    Par sebgre38 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 30/10/2009, 12h53
  3. Réponses: 3
    Dernier message: 28/08/2009, 11h06
  4. probleme de disposition avec GridBagLayout dans une fenetre
    Par thierry_b dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 17/07/2009, 11h08
  5. [SQL2005-8] Probleme de charset avec BULK INSERT
    Par rom92150 dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 26/11/2008, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo