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 :

JSF, Primefaces et Webflow : appeler une transition du flot courant


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Par défaut JSF, Primefaces et Webflow : appeler une transition du flot courant
    Bonjour.

    J'ai un petit soucis avec JSF (2.0.3), Primefaces (2.2.RC2) et Webflow (2.2.1.RELEASE). Je m'explique.

    J'ai deux écrans :
    - un premier, search.xhtml, qui permet de faire une recherche sur un dossier (flot associé : search.xml).
    - un second, edit.xhtml, qui permet d'éditer un dossier (flot associé : edit.xml).

    search.xml
    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
    <!-- Page principale -->
    	<view-state id="searchView" view=".../search.xhtml">
    		<transition on="search" to="search"/>
    		<transition on="edit" to="editDossier">
    			<set name="flashScope.id" value="requestParameters.idDossier" type="java.lang.Long" />
    		</transition>
    	</view-state>
     
    	<!-- Recherche -->
    	<action-state id="search">
    		...
    	</action-state>
     
    	 <!-- Détail Dossier -->
        <subflow-state id="editDossier" subflow="edit">
        	<input name="idDossier" value="flashScope.idDossier" type="java.lang.Long" />
        	<transition to="searchView" />
        </subflow-state>
    search.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
    ...
    	<!-- Formulaire de recherche -->
    	<h:form id="criteriaForm">
    			...
    	</h:form>
     
    	<!-- Formulaire de résultats -->
    	<h:form id="dossiersForm" prependId="false">
    		<p:dataTable id="dossiers" value="#{dossiersManager.beans}" var="dossier" emptyMessage="#{resourceBundle['results.none']}" 
    			selection="#{dossiersManager.beanSelected}" selectionMode="single"
    			onRowSelectUpdate="pannel_selectedDossier"
    			onselectComplete="document.getElementById('editButton').click()" >
    				...
    		<p:dataTable>
    	</h:form>
     
    	<!-- Formulaire posté pour lancer l'edition du dossier sélectionné -->
    	<div style="display: none;">
    		<h:form id="editForm" prependId="false">
    			<p:outputPanel id="pannel_selectedDossier">
    				<h:inputHidden id="idDossier" name="idDossier" value="#{dossiersManager.beanSelected.id}" />
    			</p:outputPanel>
    				<p:commandButton id="editButton" action="edit" ajax="false" value="edit" />
    		</h:form>
    	</div>
    	...
    Comme vous l'avez peut-être constaté, mon problème est que la seule façon que j'ai trouvée pour faire appel à la transition edit de mon flot search.xml lorsqu'on clique sur un dossier du tableau de résultats, c'est simuler un clic sur le bouton editButton afin de faire un post avec l'identifiant du dossier sélectionné et la bonne transition d'appelée.
    Je voudrais donc savoir comment faire d'une manière plus élégante.
    J'ai voulu essayé de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.location=#{flowExecutionUrl}&_eventId=edit&idDossier=xxx
    , comme j'ai l'habitude de le faire quand il s'agit de JSP, mais ça ne marche pas.
    J'ai vu qu'avec RichFaces, on utilisait le code suivant pour solutionner mon problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <rich:dataTable value="#{dossiersManager.beans}" var="dossier">
    		<a4j:support event="onRowClick" action="edit"
    			onsubmit="startWaiting();"
    			oncomplete="stopWaiting();">
    			<f:param name="idDossier" value="#{dossier.id}" />
    		</a4j:support>
    	</rich:dataTable>

    mais je n'ai pas trouvé les balises correspondantes avec PrimeFaces.

    J'espère que vous pourrez m'aider, car ça m'ennuie de laisser le code dans cet état.
    Cordialement.

  2. #2
    Membre confirmé Avatar de kimausoleil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2004
    Messages : 126
    Par défaut
    Si j'ai bien compris, tu peux t'inspirer de
    http://www.primefaces.org/showcase/u...ionInstant.jsf

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Par défaut
    Citation Envoyé par kimausoleil Voir le message
    Si j'ai bien compris, tu peux t'inspirer de
    http://www.primefaces.org/showcase/u...ionInstant.jsf
    A vrai dire, c'est comme ça que c'est fait actuellement. Seulement, ça ne me convient pas car je casse complètement le flot en effectuant une redirection depuis la page de recherche, directement sur la page d'édition d'un dossier.

    Or, mon idée est bien de passer sur une branche edit de mon flot search.xml, qui elle-même effectue la redirection vers le sous-flot edit.xml. Le flot à proprement parlé (search -> edit) serait à ce moment là conservé, de sorte qu'un bouton "retour", sur la page edit.xhtml pourrait faire référence à un "end-state'" du flot edit.xml et ainsi rediriger automatiquement vers le flot parent de edit (à savoir search).

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/04/2011, 17h01
  2. Réponses: 1
    Dernier message: 29/08/2010, 22h50
  3. Réponses: 2
    Dernier message: 24/07/2009, 09h37
  4. Comment appeler une page excel avec JSF
    Par rabebIF5 dans le forum JSF
    Réponses: 3
    Dernier message: 02/06/2009, 08h12
  5. Réponses: 4
    Dernier message: 10/10/2008, 16h24

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