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 :

[RichFaces] Cliquer sur rich:panelMenu sans rafraichir la page


Sujet :

JSF Java

  1. #1
    Membre actif Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Points : 270
    Points
    270
    Par défaut [RichFaces] Cliquer sur rich:panelMenu sans rafraichir la page
    Bonjour à tous je vais essayer d’être le plus clair possible.

    J'ai un template comme suis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <div class="content">
    			<ui:insert name="menu"><ui:include src="component/menu.xhtml" /></ui:insert>
    </div>
     
    <div class="post">
        <rich:panel id="contenu">
            <ui:insert name="contenu"  />
        </rich:panel>
    </div>
    et mon menu.xhtml
    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
     
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:a4j="http://richfaces.org/a4j"
    	xmlns:rich="http://richfaces.org/rich"
    	xmlns:c="http://java.sun.com/jsp/jstl/core">
       <h:form>
        	 <rich:panelMenu  style="width:200px" itemMode="ajax" groupMode="ajax" 
                    groupExpandedLeftIcon="triangleUp"
                    groupCollapsedLeftIcon="triangleDown"
                    topGroupExpandedRightIcon="chevronUp"
                    topGroupCollapsedRightIcon="chevronDown" itemLeftIcon="disc"
                    >
     
            	<rich:panelMenuGroup label="Menu1" >
                    <rich:panelMenuItem >
                    	<h:commandLink value="#{msg['menu.user']}"  action="userlist" />
                    </rich:panelMenuItem>
                     <rich:panelMenuItem >
                    	<h:commandLink value="#{msg['menu.fonction']}"  action="fonctionlist" />
                    </rich:panelMenuItem>
             	</rich:panelMenuGroup>
     
    <rich:panelMenuGroup label="Menu2" >
                	  <rich:panelMenuItem>
                	  	<h:commandLink value="#{msg['legend.region']}" action="regionlist" />
                	  </rich:panelMenuItem> 
                	  <rich:panelMenuItem>
                	  	<h:commandLink value="#{msg['legend.departement']}"  action="departementlist" />
                	  </rich:panelMenuItem> 
                	  <rich:panelMenuItem>
                	  	<h:commandLink value="#{msg['legend.arrondissement']}"  action="arrondissementlist" />
    				  </rich:panelMenuItem> 
                	  <rich:panelMenuItem>
                	  	<h:commandLink value="#{msg['label.adresse']}"  action="adresselist" />
                	  </rich:panelMenuItem> 
            	</rich:panelMenuGroup>
     
            </rich:panelMenu>
        </h:form>
    </ui:composition>
    Le probleme à chaque fois que je clique sur un panelMenuitem, la page est rafraichie or moi je veux juste qu'il rafraichisse le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ui:insert name='contenu'>
    .

    Serait ce possible???

    Merci !

  2. #2
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    Bonjour,

    J'ai un code un peu similaire, mis à part que j'utilise un rich:toolBar dans laquelle j'ai mes rich:panelMenuGroup et rich:panelMenuItem. Je pense que dans les deux cas il est possible d'avoir le tout à travers AJAX.

    La première chose que je vois, c'est que tu dois indiquer à RichFaces quelle zone le bouton doit refresh. Un exemple de syntaxe tiré de mon application :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <rich:panelMenuItem label="#{label}" action="#{MenuActionController.executeAction}" reRender="leftNavigation,content" icon="/resources/images/icons/empty.gif" style="background-color: #F4F4F4;" rendered="#{empty rendered ? 'true' : rendered}" >
          <a4j:actionparam name="include" value="#{include}" assignTo="#{NavigationBean.contentInclude}" />
          <a4j:actionparam name="actionParam" value="#{actionParam}" assignTo="#{MenuActionController.actionParam}" />
        </rich:panelMenuItem>
    Je suis dans une ui:composition, d'où le #{label} et le #{rendered} qui sont défini au niveau supérieur.

    Si ça ne t'aide pas le "reRender", j'essaierai de chercher un peu plus. Tu as pourtant bien mis le mode sur AJAX...

  3. #3
    Membre actif Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Points : 270
    Points
    270
    Par défaut
    Salut
    oui j'ai bien mis le mode ajax.
    Merci pour la réponse je vais essayer de voir avec le ui:composition je te fais signe des que possible.

    Encore merci

  4. #4
    Membre actif Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Points : 270
    Points
    270
    Par défaut
    Bonjour excuse moi du retard je suis sur plusieurs choses à la fois lol;
    j'ai tente de mettre un avec src dynamique dans le template.
    Mais j'ai des problemes Apparemment il voit pas le bean qui gére le menu il met comme message d'erreur :[CODE]menu.xhtml @28,138 action="#{pageMenuBean.sideBarAction}" Could not Resolve Variable [Overflow]: pageMenuBean[/CODE]

    Voici les codes : template.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <ui:insert name="menu"><ui:include src="component/menu.xhtml" /></ui:insert>
     
     <ui:insert name="contenu"><ui:include src="#{pageMenuBean.includedPage}"/></ui:insert>
    menu.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <rich:panelMenu  style="width:200px" itemMode="ajax" groupMode="ajax" mode="ajax"
     
              groupExpandedLeftIcon="triangleUp"
              groupCollapsedLeftIcon="triangleDown"
              topGroupExpandedRightIcon="chevronUp"
              topGroupCollapsedRightIcon="chevronDown" itemLeftIcon="disc"
               >  
             		<rich:panelMenuGroup label="Agents" expanded="true">
    	        		<rich:panelMenuItem label="#{msg['menu.antenne']}" reRender="contenu" action="#{pageMenuBean.sideBarAction}" render="contenu">
    						<f:param name="page" value="/pages/web/agent/antennelist.xhtml"/>
    	        		</rich:panelMenuItem>
            		</rich:panelMenuGroup>
             </rich:panelMenu>
    et le bean PageMenuBean
    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
    @Controller
    @Scope("session")
    public class PageMenuBean {
            private String includedPageMain = "/pages/index.xhtml";
     
     
            public String sideBarAction() {
     
                    FacesContext context = FacesContext.getCurrentInstance();
                    String selectedPageViewId = context.getExternalContext()
                                    .getRequestParameterMap().get("page");
                    System.out.println("selectedPageViewId:" + selectedPageViewId);
                    includedPageMain = selectedPageViewId;
     
                    return "";
            }
     
            public String getIncludedPage() {
                    return includedPageMain;
            }
            public void setIncludedPage(String includedPage) {
                    this.includedPageMain = includedPage;
            }
    Je perd vraiment le nord

  5. #5
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    Pourrais-tu montrer également la configuration du faces-config.xml ?

    le message d'erreur laisse à penser que le bean pageMenuBean n'est pas correctement configuré du côté de ce fichier.

  6. #6
    Membre actif Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Points : 270
    Points
    270
    Par défaut
    Oui merci c'etait exactement ca!!!
    En fait j'utilise le parametrage par annotation et je devais mettre
    au lieu de Encore merci!

Discussions similaires

  1. Cliquer sur un element sans lien
    Par alberto314 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 13/09/2014, 09h11
  2. Cliquer sur un élément sans toucher l'écran
    Par Kimly dans le forum Développement iOS
    Réponses: 0
    Dernier message: 18/07/2014, 10h33
  3. [Débutant] Cliquer sur un Bouton sans ID ni Name
    Par Juaaah dans le forum VB.NET
    Réponses: 3
    Dernier message: 05/05/2013, 22h27
  4. Réponses: 4
    Dernier message: 04/12/2008, 19h53
  5. [Popup]Cliquer sur un button sans raffraichir ?
    Par rad_hass dans le forum ASP.NET
    Réponses: 8
    Dernier message: 26/03/2008, 15h44

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