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 :

lien dans un rich:menuItem


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Par défaut lien dans un rich:menuItem
    Bonjour,

    je suis actuellement en train de développer une appli avec Spring Webflow. je doit réaliser dans un formulaire un select en richFaces et lorsque l'on clique sur un élément de ce select, il doit effectuer l'action d'un autre bouton. Voici ce que j'ai actuellement :

    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
     
    <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:sf="http://www.springframework.org/tags/faces"
    	xmlns:rich="http://richfaces.org/rich">
     
     
    	<ui:fragment id="totoFragment">
    		<h:form id="totoForm">
    			<rich:dataTable id="totoDataTable" var="objet"
    				value="#{objetList}" >
    				<f:facet name="header">
    					<h:outputText value="Liste des objets" />
    				</f:facet>
     
    				<rich:column>
    					<h:outputText value="#{objet.nom}" />
    				</rich:column>
    				<rich:column width="200px">
    					<rich:dropDownMenu value="Select" >
    				             <rich:menuItem value="Modifier" submitMode="server"
    							action="edit-objet" />
    						<rich:menuItem value="Supprimer" submitMode="server"
    							action="suppress-objet" />
    											</rich:dropDownMenu>
    				</rich:column>
    <sf:commandLink id="edit" action="edit-objet" processIds="*" />
     
     
    			</rich:dataTable>
    		</h:form>
    	</ui:fragment>
     
    </ui:composition>
    Ici quand je clique sur l'élément "Modifier", je suis censé faire l'action du sf:commandLink. J'ai testé avec un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <rich:menuItem value="Modifier" onclick="Spring.remoting.submitForm('${formId}:edit', '${formId}', {processIds: '${formId}:edit, *'}); return false;" />
    mais ca ne fait pas le lien...

    Si quelqu'un pouvait m'aider un chouille.... merci d'avance

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    dans le menuItem tu as l'attribut action comme pour un button..
    Que est le problème?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Par défaut
    J'utilise Spring Webflow 2 et en effet l'action fonctionne pour appeler la view-state mais le souci est que dans ce cas l'attribut popup="true" ne fonctionne pas.
    J'affiche ma nouvelle view mais pas dans une popup modale comme ca devrait le faire...

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Tu n'est pas obligé de passer par action pour afficher une modalPanel,
    tu peux envoyer le formulaire avec de l'ajax et ouvrir la popup, tu peux laisser l'action vide ou avec un traitement qui retourne null pour rester sur la même page et ouvrir la modalPanel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oncomplete="javascript:Richfaces.showModalPanel('modal_panel',{left:'auto',top:'auto'})"

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Par défaut
    Alors, alors...

    j'ai testé ton bout de code et c'est très bien pour ouvrir une popup modale mais seulement quand je mets submitMode="none" sinon la popup s'affiche puis s'efface car la page se recharge.

    Par contre je n'ai pas compris le fonctionnement afin de récuperer l'objet selectionné et d'effectuer un traitement avant affichage dans la popup.

    J'ai donc actuellement dans mon 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
    <ui:fragment id="objetListFragment">
    <h:form id="objetListForm">
    <rich:dataTable id="objetDataTable" var="objet" value="#{objetList}" >
    	<f:facet name="header">
    	<h:outputText value="Liste des objets" />
    	</f:facet>
    	<rich:column>
    		<h:outputText value="#{objet.nom}" />
    	</rich:column>
    	<rich:column width="200px">
    		<rich:dropDownMenu value="Select">
    			<rich:menuItem submitMode="server" value="Consulter" onclick="javascript:Richfaces.showModalPanel('myModalPanel',{left:'auto',top:'auto'})">
    			</rich:menuItem>
    		</rich:dropDownMenu>
    	</rich:column>
    </rich:dataTable>
    </h:form>
    </ui:fragment>
     
    <ui:fragment id="objetDetailFormFragment" >
    	<rich:modalPanel id="myModalPanel">
    	<h:form id="objetDetailForm">
    		<f:facet name="header">
    			<h:outputText value="Infos de l'objet" />
    		</f:facet>
    		<h:outputText value="#{objet.nom}" />
    		<h:outputText value="#{objet.id}" />
    		<h:outputText value="#{objet.numeroDeSerie}" />
    		<h:outputText value="#{objet.dateCreation}" />
    		<h:panelGroup class="buttonGroup">
    			<sf:commandButton onclick="javascript:Richfaces.hideModalPanel('myModalPanel',{left:'auto',top:'auto'})" id="returnButton" value="Retour" />
    		</h:panelGroup>
    	</h:form>	
                 </rich:modalPanel>
     
    </ui:fragment>
    Les infos complètes (id, numero de serie et date de création) je ne les récupère qu'après avoir cliqué sur la ligne correspondant à l'objet (d'où le submitMode="server"). J'ai dans mon flow.xml ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <transition on="edit-objet" >
    	<evaluate expression="objetService.getByName(viewScope.objetList.selectedRow)" result="viewScope.objet" ></evaluate>
    </transition>
    Comment faire pour qu'il passe par la transition puis, ensuite, sans changer la page, affiche la popup avec les infos qui viennent d'être passées?

    De plus mon bouton retour (quand je mets submitMode="none" pour que la popup s'affiche) me retourne une erreur de type nullPointerException quand je clique dessus pour retourner à ma page principale.

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    je ne sais pas ce que ça représente la transition de spring web flow, mais concernant JSF et Richfaces si tu fais submitMode à NONE, il n'ya pas d'envoi d'informations au serveur, tu ne peux donc ,pas récupérer ton objet.
    Sinon pour récupérer la ligne de la dataTable, tu peux t'inspirer d'une des solutions présentées dans la

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lien hypertexte]Mettre un lien dans un JTextPane
    Par Pill_S dans le forum Composants
    Réponses: 8
    Dernier message: 23/05/2004, 19h20
  2. lien dans un tableau
    Par billoum dans le forum ASP
    Réponses: 5
    Dernier message: 04/05/2004, 13h51
  3. Verrouiller un lien dans une page
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 5
    Dernier message: 25/02/2003, 16h56

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