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

Spring Web Java Discussion :

Comment passer un objet d'un flow à un subflow [WebFlow]


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Billets dans le blog
    1
    Par défaut Comment passer un objet d'un flow à un subflow
    Bonjour
    Je cherche à passer un object d'un flow à un subflow.
    L'object en question est une variable d'un flow que j'ai évalué en début de flow et placé en conversation scope, donc le but de l'avoir visible dans le flow et ses subflow, mais arrivé en subflow l'appel de cette objet par EL dans la page web me renvoi vide.
    voici le flow parent
    Code xml : 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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <flow xmlns="http://www.springframework.org/schema/webflow"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.springframework.org/schema/webflow
    		http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
     
        <secured attributes="ROLE_USER"/>
        <persistence-context/>
     
        <on-start>
            <evaluate
                expression="requestParameters.contains('from') ? requestParameters.get('from') : 'home'"
                result="flowScope.from"/>
            <evaluate expression="userService.currentUserModel"
                      result="conversationScope.userModel"/>
        </on-start>
     
        <view-state id="editProfile" model="userModel">
            <transition on="profileExitAction" to="profileEndFlow"/>
            <transition on="validateProfile" to="reviewProfile">
                <evaluate expression="userFaces.validateUpdateProfileAction(userModel)"/>
            </transition>
            <transition on="modifySecondaryEmail" to="editSecondaryEmail"/>
            <transition on="modifyPassword" to="editPassword"/>
        </view-state>
     
        <view-state id="reviewProfile" model="userModel">
            <transition on="profileExitAction" to="profileEndFlow"/>
            <transition on="reviseUpdateProfile" to="editProfile"/>
            <transition on="confirmUpdateProfile" to="profileEndFlow">
                <evaluate expression="userService.updateProfile(userModel)"/>
            </transition>
        </view-state>
     
        <subflow-state id="editSecondaryEmail" subflow="secondaryEmail">
            <!--ici je veux passer le model userModel au subflow secondaryEmail-->
            <transition on="secondaryEmailEndFlow" to="editProfile"/>
        </subflow-state>
     
        <subflow-state id="modifyPassword" subflow="password">
            <!--TODO-->
        </subflow-state>
     
        <end-state id="profileEndFlow" view="externalRedirect:#{from}" commit="true"/>
    </flow>

    sublflow
    Code xml : 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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <flow xmlns="http://www.springframework.org/schema/webflow"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.springframework.org/schema/webflow
    		http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
     
        <view-state id="editSecondaryEmail" model="userModel">
            <transition on="secondaryEmailExitAction" to="secondaryEmailEndFlow">
                <evaluate expression="userModel.user.setUserEmails(userService.currentUserModel.user.userEmails)"/>
                <evaluate
                    expression="userModel.secondaryEmailValue == null ? userModel.setSecondaryEmail(null) : userModel.setSecondaryEmail(userService.currentUserSecondaryEmail)"/>
            </transition>
            <transition on="validateSecondaryEmail" to="reviewSecondaryEmail">
                <evaluate expression="userFaces.validateUpdateProfileAction(userModel)"/>
            </transition>
        </view-state>
     
        <view-state id="reviewSecondaryEmail" model="userModel">
            <transition on="secondaryEmailExitAction" to="secondaryEmailEndFlow">
                <evaluate expression="userModel.user.setUserEmails(userService.currentUserModel.user.userEmails)"/>
                <evaluate
                    expression="userModel.secondaryEmailValue == null ? userModel.setSecondaryEmail(null) : userModel.setSecondaryEmail(userService.currentUserSecondaryEmail)"/>
            </transition>
            <transition on="reviseUpdateSecondaryEmail" to="editSecondaryEmail"/>
            <transition on="confirmUpdateSecondaryEmail" to="secondaryEmailEndFlow"/>
        </view-state>
     
        <end-state id="secondaryEmailEndFlow"/>
    </flow>

  2. #2
    Membre très actif
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Billets dans le blog
    1
    Par défaut
    une autre tentative sans succès

    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <flow xmlns="http://www.springframework.org/schema/webflow"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.springframework.org/schema/webflow
    		http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
     
        <secured attributes="ROLE_USER"/>
        <persistence-context/>
     
        <on-start>
            <evaluate
                expression="requestParameters.contains('from') ? requestParameters.get('from') : 'home'"
                result="flowScope.from"/>
            <evaluate expression="userService.currentUserModel"
                      result="flowScope.userModel"/>
        </on-start>
     
        <view-state id="editProfile" model="userModel">
            <transition on="profileExitAction" to="profileEndFlow"/>
            <transition on="validateProfile" to="reviewProfile">
                <evaluate expression="userFaces.validateUpdateProfileAction(userModel)"/>
            </transition>
            <transition on="modifySecondaryEmail" to="editSecondaryEmail"/>
            <transition on="modifyPassword" to="editPassword"/>
        </view-state>
     
        <view-state id="reviewProfile" model="userModel">
            <transition on="profileExitAction" to="profileEndFlow"/>
            <transition on="reviseUpdateProfile" to="editProfile"/>
            <transition on="confirmUpdateProfile" to="profileEndFlow">
                <evaluate expression="userService.updateProfile(userModel)"/>
            </transition>
        </view-state>
     
        <subflow-state id="editSecondaryEmail" subflow="secondaryEmail">
            <!--ici je veux passer le model userModel au subflow secondaryEmail-->
            <input name="userModel" value="flowScope.userModel" type="site.domain.datamodel.UserModel"/>
            <transition on="secondaryEmailEndFlow" to="editProfile"/>
        </subflow-state>
     
        <subflow-state id="modifyPassword" subflow="password">
            <!--TODO-->
        </subflow-state>
     
        <end-state id="profileEndFlow" view="externalRedirect:#{from}" commit="true"/>
    </flow>

    Code xml : 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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <flow xmlns="http://www.springframework.org/schema/webflow"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.springframework.org/schema/webflow
    		http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
     
     
        <input name="userModel" value="flowScope.userModel" type="site.domain.datamodel.UserModel"/>
     
        <view-state id="editSecondaryEmail" model="userModel">
            <transition on="secondaryEmailExitAction" to="secondaryEmailEndFlow">
                <evaluate expression="userModel.user.setUserEmails(userService.currentUserModel.user.userEmails)"/>
                <evaluate
                    expression="userModel.secondaryEmailValue == null ? userModel.setSecondaryEmail(null) : userModel.setSecondaryEmail(userService.currentUserSecondaryEmail)"/>
            </transition>
            <transition on="validateSecondaryEmail" to="reviewSecondaryEmail">
                <evaluate expression="userFaces.validateUpdateProfileAction(userModel)"/>
            </transition>
        </view-state>
     
        <view-state id="reviewSecondaryEmail" model="userModel">
            <transition on="secondaryEmailExitAction" to="secondaryEmailEndFlow">
                <evaluate expression="userModel.user.setUserEmails(userService.currentUserModel.user.userEmails)"/>
                <evaluate
                    expression="userModel.secondaryEmailValue == null ? userModel.setSecondaryEmail(null) : userModel.setSecondaryEmail(userService.currentUserSecondaryEmail)"/>
            </transition>
            <transition on="reviseUpdateSecondaryEmail" to="editSecondaryEmail"/>
            <transition on="confirmUpdateSecondaryEmail" to="secondaryEmailEndFlow"/>
        </view-state>
     
        <end-state id="secondaryEmailEndFlow"/>
    </flow>

    je suis à l'écoute pour toutes remarques... merci d'avance

  3. #3
    Membre très actif
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Billets dans le blog
    1
    Par défaut
    En reconsidérant mon analyse de flow,
    j'en suis arrivé à la conclusion que je n'avais pas besoin de subflow dans mon cas d'utilisation.
    Cela ne résout pas ma question initiale mais au moins j'en arrive à une issue fonctionnelle
    que voici
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <flow xmlns="http://www.springframework.org/schema/webflow"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.springframework.org/schema/webflow
    		http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
     
        <secured attributes="ROLE_USER"/>
        <persistence-context/>
     
        <on-start>
            <evaluate
                expression="requestParameters.contains('from') ? requestParameters.get('from') : 'home'"
                result="flowScope.from"/>
            <evaluate expression="userService.currentUserModel"
                      result="conversationScope.userModel"/>
            <evaluate expression="userService.currentUserSecondaryEmailValue"
                      result="flowScope.currentSecondaryEmailValue"/>
        </on-start>
     
        <view-state id="editProfile" model="userModel">
            <transition on="profileExitAction" to="profileEndFlow"/>
            <transition on="validateProfileAction" to="reviewProfile">
                <evaluate expression="userFaces.validateUpdateProfileAction(userModel)"/>
            </transition>
            <transition on="editSecondaryEmailAction" to="editSecondaryEmail">
                <evaluate expression="userFaces.validateUpdateProfileAction(userModel)"/>
            </transition>
        </view-state>
     
        <view-state id="reviewProfile" model="userModel">
            <transition on="profileExitAction" to="profileEndFlow"/>
            <transition on="reviseUpdateProfile" to="editProfile"/>
            <transition on="confirmUpdateProfileAction" to="profileEndFlow">
                <evaluate expression="userService.updateProfile(userModel)"/>
            </transition>
        </view-state>
     
     
        <view-state id="editSecondaryEmail" model="userModel">
            <transition on="validateSecondaryEmailAction" to="reviewSecondaryEmail">
                <evaluate expression="userFaces.validateUpdateProfileAction(userModel)"/>
            </transition>
            <transition on="secondaryEmailExitAction" to="editProfile">
                <evaluate expression="userModel.setSecondaryEmailValue(currentSecondaryEmailValue)"/>
            </transition>
            <transition on="deleteSecondaryEmailAction" to="reviewSecondaryEmail">
                <evaluate expression="userModel.setSecondaryEmailValue(null)"/>
            </transition>
        </view-state>
     
        <view-state id="reviewSecondaryEmail" model="userModel">
            <transition on="reviseSecondaryEmailAction" to="editSecondaryEmail"/>
            <transition on="confirmUpdateSecondaryEmailAction" to="editProfile"/>
            <transition on="secondaryEmailExitAction" to="editProfile">
                <evaluate expression="userModel.setSecondaryEmailValue(currentSecondaryEmailValue)"/>
            </transition>
        </view-state>
     
        <end-state id="profileEndFlow" view="externalRedirect:#{from}" commit="true"/>
     
    </flow>
    alors si quelqu'un a une idée sur la façon de passer des données d'un flow parent à un sublow je serai ravie de connaître le modus operandi.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/07/2007, 11h23
  2. [RCP][débutant] Comment passer un objet d'une vue à une autre
    Par jycronier dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 20/07/2006, 15h13
  3. Réponses: 4
    Dernier message: 20/04/2006, 11h07
  4. [JACOB] Comment passer un objet par référence à une méthode
    Par zlavock dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 21/03/2005, 18h28

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