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 :

Single Page Application : problème sur les inputs et boutons


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juin 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juin 2011
    Messages : 20
    Points : 21
    Points
    21
    Par défaut Single Page Application : problème sur les inputs et boutons
    Bonjour et bonne année

    Je m'explique sur mes problèmes:

    Je suis sur JSF2.2 et Primefaces 4. Je priorise le tag JSF que primefaces. J'ai une application avec seulement une page index.xhtml

    - Au premier chargement de ma page JSF index.xhtml, je peux faire appels à toutes les méthodes de mes Bean JSF (RequestScope) via des boutons ou link ou event Handler.

    - J'ai un bouton dans ce page index.xhtml que j'utilise pour charger dynamiquement un formulaire dans ma page index.html. La méthode associée à ce bouton fonctionne parfaitement et j'ai la nouvelle portion de page chargée parfaitement.

    - Dans le nouvel formulaire chargé, il y a un bouton associé à une méthode de mon bean. C'est là que j'aurai un souci, le bouton (dans le formulaire nouvellement chargé) n'exécute plus aucune méthode de mes Bean JSF. Seulement, le click sur le bouton entre dans le constructeur de mon bean JSF, mais jamais arrivé dans la méthode y associée.

    Merci

  2. #2
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Bonjour, bonne année à vous également,

    Essayez de rafraîchir le contexte après le chargement du formulaire.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juin 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juin 2011
    Messages : 20
    Points : 21
    Points
    21
    Par défaut
    @Mishulyna : Merci pour le conseil.

    J'ai rajouté ceci dans mon command action du Bean, dans les dernières lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    FacesContext context 	= FacesContext.getCurrentInstance();
    		String viewId = context.getViewRoot().getViewId();
    		ViewHandler handler = context.getApplication().getViewHandler();
    		UIViewRoot root = handler.createView(context, viewId);
    		root.setViewId(viewId);
    		context.setViewRoot(root);
    Mais ça n'a pas abouti. Il y a quelques choses qui m'a échappé
    En attendant, je vais voir le composite component, si ça vaut la peine.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juin 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juin 2011
    Messages : 20
    Points : 21
    Points
    21
    Par défaut
    J'ai trouvé ma solution en utilisant un seul form pour toute ma page. Tous fonctionne, même workflow avec formulaire dynamique.

    Mon seul souci c'est que je risque de passer sur le réseau pas mal de paramètres inutiles pour une requête.
    Quelqu'un a plus d'info sur javax.faces.partial.execute ?

    Merci

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juin 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juin 2011
    Messages : 20
    Points : 21
    Points
    21
    Par défaut
    ça m'a déjà aidé :

    JSTL tags and JSF UI components doesn't run in sync as you'd expect from the coding. Long story short: JSTL in JSF2 Facelets... makes sense? Read this carefully.

    In your particular case, the JSTL <c:if> tag condition seems to be dependent on the result of the JSF <f:event> tag. At the moment the <c:if> runs, during the view build time, the <f:event> hasn't run yet, because it runs during pre render view event. Hence the #{mBlog.blog.id} is always null or any other default.

    You need to use JSF component's rendered attribute instead. It also keeps your code cleaner.

    <h:commandButton value="Update" action="#{mBlog.update}" rendered="#{mBlog.blog.id gt 0}" />
    <h:commandButton value="Save" action="#{mBlog.save}" rendered="#{mBlog.blog.id eq 0}" />
    You've however another potential future problem when invoking the action. Make sure that the bean is put in view scope, not in the request scope.

    Link: http://stackoverflow.com/questions/9...tton-using-cif

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

Discussions similaires

  1. Problème sur les roles d'applications
    Par Peter p@n ! dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/05/2008, 23h23
  2. Problème sur les dates
    Par Littlecoda dans le forum Oracle
    Réponses: 7
    Dernier message: 07/07/2006, 11h39
  3. problème sur les threads et les sémaphores
    Par ramislebob dans le forum Windows
    Réponses: 1
    Dernier message: 29/06/2006, 11h52
  4. Réponses: 6
    Dernier message: 31/03/2006, 17h05
  5. j'ai un problème sur les hinstances
    Par ramaro dans le forum C++
    Réponses: 9
    Dernier message: 26/02/2006, 14h32

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