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 javascript inactif


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut jsf javascript inactif
    Bonjour,
    Avant tout, je débute en jsf
    j'aimerai executer une commande javascript et un action bean sur un composant jsf mais l'action bean n'est pas exécuté à cause du javascript.

    code jsf:
    ne soyez pas surpris par le bouton caché..., c'est comme ça que je dois utiliser, c'est imposé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <h:inputText value="#{richBean.name}" ondblclick="getElementById('jbForm1:bouton').click();" id="name">
    <h:commandButton id="bouton" action="#{richBean.dblClick}" onclick="startWait('jbForm1','name')"   style="visibility:hidden;"/>
    code js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function startWait(idForm,element) {
    var obj = document.getElementById(idForm+":"+element);
    var ret = Form.disable(idForm); //framework js, qui permet de disable tous les champs d'un formulaire.
    }
    code java dans le bean richBean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public String dblClick() throws InterruptedException {
        	System.out.println("double clic 1");
        	Thread.sleep(5000);
        	System.out.println("double clic 2");
        	return "";
        }
    En gros, quand on fait un double clic sur la textbox, on met en attente 5s le traitement, le champ est disable puis la page se recharge.

    Mais le souci, c'est que ça marche pas. le js bloque la méthode du bean.

    avez vous une idée ?

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu peux utiliser a4j pour cela: attributs qui peuvent être utile:requestDelay, timeout, eventsQueue..

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    le a4j:commandButton ? d'après ce que j'ai compris, ce bouton ne s'occupe pas de la navigation

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    voici ce que j'ai modifié

    code jsf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <h:form id="jbForm1"> 
        <h:inputText   value="#{richBean.name}" ondblclick="getElementById('jbForm1:bouton').click();" id="name">
        <a4j:support  event="onblur" action="#{richBean.lostFocus}" />
        </h:inputText>
        <a4j:commandButton id="bouton" action="#{richBean.dblClick}" onclick="startWait('jbForm1');" oncomplete="reload('jbForm1')"  />
    </h:form>
    code js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function startWait(idForm) {
    	var ret = Form.disable(idForm);
    	return true;
    }
     
    function reload() {
    	var obj = document.getElementById("jbForm1");
    	obj.submit();
    }
    le souci, c'est qu'après le submit, la valeur du champ est perdu. Dans le faceconfig.xml, le scope du bean est à request.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    c bon ça marche !
    j'avais oublié de mettre à jour dans le faces-config.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <navigation-rule>
    		<from-view-id>/faces/greeting.jsp</from-view-id>
    		<navigation-case>
    			<from-outcome>HelloWorld</from-outcome>
    			<to-view-id>/faces/greeting.jsp</to-view-id>
    		</navigation-case>
    	</navigation-rule>
    En tout cas là c nikel, ça execute ma méthode et le startWait qui bloque tous les champs jusqu'à la fin de l'éxecution du traitement et ça recharge la page
    je découvre jsf, c'est vraiment puissant

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    comme par hasard, sur FF, ça marche et pas sur IE 8. Offff ça commence vraiment à me souler !!

    c'est le Form du javascript qui ne reconnait pas. je comprend pas poourquoi !!
    Form is undefined!!

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

Discussions similaires

  1. jsf javascript accent
    Par thetoto52 dans le forum JSF
    Réponses: 2
    Dernier message: 11/04/2008, 11h30
  2. [PHP-JS] Rendre le code JavaScript inactif
    Par kynri dans le forum Langage
    Réponses: 7
    Dernier message: 13/11/2007, 18h09
  3. Réponses: 7
    Dernier message: 04/10/2007, 11h31
  4. JSF, javascript et panelGrid
    Par cecile_bzh dans le forum JSF
    Réponses: 2
    Dernier message: 06/09/2007, 15h38
  5. [JSF][Javascript]Contrôle côté client
    Par JohnBlatt dans le forum JSF
    Réponses: 7
    Dernier message: 15/11/2006, 18h21

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