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 :

questions et problemes sur le dispatch()


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Par défaut questions et problemes sur le dispatch()
    Hello,

    Je fais face a plusieurs problemes avec la methode dispatch() que j'utilise dans mon appli JSF.
    Quand l'utilisateur se connecte sur l'appli, il arrive tjrs la 1iere fois sur la jsp main.jsp.
    Dans la method init(), celle-ci verifie que certaines valeurs dans le bean application et dans le bean session, et en fonction de cela redirige vers la page correcte:
    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
     
            getApplicationBean1();
            getSessionBean1();
            getRequestBean1();
     
            if (!getRequestBean1().getCanDisplayPmonGui()) {
                try {
                    FacesContext facesContext = FacesContext.getCurrentInstance();
                    facesContext.getExternalContext().dispatch("./ErrorPage.jsp");
                    facesContext.renderResponse();
                }
                catch (Exception e) {
                    TraceManager.TrException(e);
                }
            }
            else if (getApplicationBean1().getIsClusterEnabled()) {
                try {
                    FacesContext facesContext = FacesContext.getCurrentInstance();
                    facesContext.getExternalContext().dispatch("./Cluster2.jsp");
                    facesContext.renderResponse();
                }
                catch (Exception e) {
                    TraceManager.TrException(e);
                }
            }
            else {
                try {
                    FacesContext facesContext = FacesContext.getCurrentInstance();
                    facesContext.getExternalContext().dispatch("./Page1.jsp");
                    facesContext.renderResponse();
                }
                catch (Exception e) {
                    TraceManager.TrException(e);
                }
            }
    Mon probleme, c'est que j'ai quelques effets de bord indesirables:

    - j'ai du code javascript qui devrait etre appele sur le onload de la page1.jsp qui n'est jamais appele, alors que le javascript apparait bien dans la source HTML genere au client.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ui:body binding="#{Page1.body1}" id="body1" onLoad="refresh()" style="-rave-layout: grid">
    Afin de prevoir les cas de refresh() directement sur la page1.jsp, j'ai du egalement rajoute une redirection dans le init(), redirection qui n'est jamais appele (ouf) sauf si un petit malin a fin un start/stop de Tomcat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (!getRequestBean1().getCanDisplayPmonGui()) {
                try {
                    FacesContext facesContext = FacesContext.getCurrentInstance();
                    facesContext.getExternalContext().dispatch("./ErrorPage.jsp");
                    facesContext.renderResponse();
                }
                catch (Exception e) {
                    TraceManager.TrException(e);
                }
            }
            else {....}
    Ca ne fonctionne pas et en examinant les traces de mon application je remarque que:
    * init() page1.jsp est appele
    * init() errorPage.jsp
    * prerender() errorPage.jsp
    * destroy() errorPage.jsp
    * destroy() page1.jsp
    * prerender page1.jsp

    A ce matin la, j'ai 2 comportement, suivant le projet fait avec Java Studio creator ou Netbeans 5.5
    - avec JSC: exception dans le web browser mais qui n'apparait ni dans les traces de l'appli, ni dans Catalina.out
    - avec netbeans, exception dans le prerenderer() lorsque l'appli tente l'appel a getSessionBean1() avec un null pointer, l'exception est catchee mais elle empeche manifestement la page error page de bien s'afficher....

    Merci de m'avoir lu jusqu'au bout, et j'aimerais vraiment connaitre vos impressions...

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Par défaut
    Ca y est, j'ai trouve la solution pour le 1er probleme.

    En fait mon probleme venait qu'il y avait une progressbar de la bibliotheque blueprints qui etait presente dans la page. Manifestement c'est elle qui empechait mon code javascript d'etre appele sur le onLoad().
    J'ai pas cherche plus loin, mais je suppose que ce composant, qui est un mix entre de l'ajax et du JSF doit avoir son propre code javascript qui doit interferer.

    Pour la seconde question soulevee, en fait j'ai le meme probleme sous Netbeans et JSC. J'ai adapte mon code en consequence. Mais je serais qd meme curieux de savoir pourquoi....

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/10/2012, 10h05
  2. Réponses: 3
    Dernier message: 07/04/2003, 20h06
  3. Probleme sur le Fields des fichiers Xmlgram
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 4
    Dernier message: 20/03/2003, 17h09
  4. Probleme sur un AppendChild
    Par Toxine77 dans le forum XMLRAD
    Réponses: 3
    Dernier message: 14/03/2003, 18h25
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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