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]ModalPanel et Form


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Par défaut [RichFaces]ModalPanel et Form
    Bonjour à tous,

    j'utilise JSF1.2, Facelet 1.1.14, RichFaces3.3.2 sur Glassfish 2.1.

    J'ai disposé un petit formulaire simple dans un ModalPanel permettant d'envoyé un message :
    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
     
    <rich:modalPanel style="text-align: center; vertical-align: middle;" autosized="true" id="panelMessage" width="350" height="100">
        <f:facet name="header">
            <h:panelGroup>
                <h:outputText value="#{fantasmesBundle['modal.message']}"></h:outputText>
            </h:panelGroup>
        </f:facet>
        <f:facet name="controls">
            <h:panelGroup>
                <a4j:commandLink value="#{fantasmesBundle['modal.close']}" styleClass="hidelink" id="hidelinkMessage"/>
                <rich:componentControl for="panelMessage" attachTo="hidelinkMessage" operation="hide" event="onclick"/>
            </h:panelGroup>
        </f:facet>
        <h:outputLabel for="titleMsg" value="#{fantasmesBundle['message.title']}" /><br />
        <h:inputText id="titleMsg" styleClass="messageTitle" value="#{FantasmesMB.message.title}" /><br />
        <h:outputLabel for="contentMsg" value="#{fantasmesBundle['message.content']}" /><br />
        <h:inputTextarea id="contentMsg" styleClass="messageContent" value="#{FantasmesMB.message.content}" /><br />
        <a4j:commandLink reRender="table" actionListener="#{FantasmesMB.setValideFantasme}" >
            <f:attribute name="numValide" value="2" />
            <h:outputText value="#{fantasmesBundle['submit.refuse']}" />
        </a4j:commandLink>
    </rich:modalPanel>
    Ce ModalPanel se trouve dans un extendedDataTable qui est lui même inclue dans un <h:form></h:form>.

    Mon problème est que les attributs de mon objet message (title, content) ne sont pas définis (null).

    Je ne trouve pas l'erreur. Je pense que le fait qu'un modalpanel soit une div popup engendre peut-être des problèmes JS mais je n'ai aucune erreur.

    Quelqu'un aurait-il une solution ?

    Merci d'avance,

    Gnarik

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Par défaut
    Bon,

    Je suis tombé sur ce poste (lien), j'ai suivis ces instructions :

    - Ajoute un form dans la modalPanel
    - la modalPanel ne doit pas être incluse dans le form de ta page.
    - lorsque tu ouvre la modalPanel, ajoute un reRender sur la modalPanel ou son contenu.
    Le lien qui ouvre mon modalPanel a un reRender sur le formulaire inclus au modalpanel :

    Mon lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <a4j:commandLink id="linkMessage" reRender="formMessage">
           <h:outputText value="#{fantasmesBundle['submit.refuse']}" />
           <rich:componentControl for="panelMessage" attachTo="linkMessage" operation="show" event="onclick"/>
    </a4j:commandLink>
    Ce lien se trouve dans mon extendedDataTable qui est lui-même dans un <h:form>

    Mon formulaire dans le modalPanel "panelMessage"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <a4j:form id="formMessage">
        <h:outputLabel for="titleMsg" value="#{fantasmesBundle['message.title']}" /><br />
        <h:inputText id="titleMsg" styleClass="messageTitle" value="#{FantasmesMB.message.title}" /><br />
        <h:outputLabel for="contentMsg" value="#{fantasmesBundle['message.content']}" /><br />
        <h:inputTextarea id="contentMsg" styleClass="messageContent" value="#{FantasmesMB.message.content}" /><br />
        <a4j:commandLink id="valideMessage" reRender="table" actionListener="#{FantasmesMB.setValideFantasme}" >
            <f:attribute name="numValide" value="2" />
            <h:outputText value="#{fantasmesBundle['submit.refuse']}" />
        </a4j:commandLink>
        <rich:componentControl for="panelMessage" attachTo="valideMessage" operation="hide" event="onclick"/>
    </a4j:form>
    Le modalPanel est à l'extérieur du extendedDataTable et du premier <h:form>

    J'ai accès à mon actionListener dans le cas ou mon modalPanel est dans le permier form(sans le <a4j:form>) mais mon objet message n'est pas rempli. Dans le deuxième cas, mon action est n'est simplement pas exécuté.

    J'ai ajouté un <h:messages /> dans ma page mais je n'ai aucune erreur.

    J'espère réussir à me faire comprendre, bonne semaine, j'attend vos réponses.

    Gnarik

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Par défaut
    Bon bon bon...

    Je me trompais. Mon action est bien exécuté et mon objet message est bien remplit mais par contre je n'ai plus de ligne sélectionnée dans mon extendedDataTable.

    La solution est proche, quelqu'un a-t-il une idée sur la manière dont je peux à ce moment là récupéré les lignes de mon extendedDataTable ?

    NB : J'ai d'autres actions, elles, dans le premier <h:form> qui récupèrent les lignes sélectionnées...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Par défaut
    J'ai l'impression de parler seul ...

    Bon j'ai trouvé la solution qui est d'ailleurs toute simple : mettre son ManagedBean en session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <managed-bean-scope>session</managed-bean-scope>
    Voilà, merci de m'avoir écouté ^^

    Gnarik

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut
    Surtout merci d'avoir continuer à persévérer et d'avoir mis la réponse à la fin. ça m'a aidé ^^

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

Discussions similaires

  1. RichFaces : modalPanel : action ne passe pas
    Par wanchy dans le forum JSF
    Réponses: 1
    Dernier message: 15/03/2010, 18h36
  2. RichFaces modalPanel And a4j:status
    Par Ho(c)ine. dans le forum JSF
    Réponses: 7
    Dernier message: 11/12/2009, 10h10
  3. [richfaces] modalpanel et extendedDataTable
    Par totofe dans le forum JSF
    Réponses: 7
    Dernier message: 10/09/2009, 17h37
  4. [Richfaces][ModalPanel] Envoie de données
    Par raff87 dans le forum JSF
    Réponses: 14
    Dernier message: 30/04/2009, 09h46
  5. [RichFaces] ModalPanel et Calendar
    Par gcube dans le forum JSF
    Réponses: 1
    Dernier message: 11/06/2008, 11h59

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