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

Développement Web en Java Discussion :

JavaScript et Managed Bean


Sujet :

Développement Web en Java

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script type="text/javascript">
    function process(sid, num)
    {
          alert('Coucou');
    }
     
    // ne fonctionne pas
    <a href="javascript:process(#{i.sid}, #{mandant.num})">#{mandant.num}</a>
     
    // sa non plus
    <a href="process(#{i.sid}, #{mandant.num})">#{mandant.num}</a>
    Ne fonctionne pas. Le 1er rien ne se passe. Le second j'ai Status 404.

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Ok j'avais une erreur dans le passage des paramètres j'avais oublié les ' '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:process('#{i.sid}', '#{mandant.num}')">#{mandant.num}</a>
    Maintenant je passe bien dans process. Néanmoins ma servlet n'est pas appelée.

    Question le fichier jquery est-il nécessaire ? Sans rien ne se passe. Avec il me fait planter des composants primefaces...

  3. #23
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Quels sont les types de #{i.sid} et #{mandant.num} ? (charactère ou numérique)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Les deux se sont des String.

  5. #25
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <a href="javascript:process('#{i.sid}', '#{mandant.num}')">#{mandant.num}</a>
    cette forme est bonne, surtout ne pas oublier "javascript:"

    Ça ne fonctionne toujours pas ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Oui oui l'appel fonctionne, je rentre bien dans mon process mais jamais dans ma servlet.

  7. #27
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Peux-tu me montrer la méthode process(...) actuelle ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Elle n'a pas beaucoup évolué il me semble :

    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
     
    <script type="text/javascript">
    function process(sid, num)
    {
    	$ajax
    	({
    		url:"servletSAP?param="+sid+";"+num,
    		async: false,
    		cache: false,
    		success:function(text)
    		{
    			alert(text);
    		}
    	});				
    }
    </script>

  9. #29
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ah, c'est bon, j'ai trouvé...
    Avec JSF et primefaces, le "." de l'url de la servlet ne fonctionne pas, il faut mettre le nom de ton application.
    Sur la base de ce que tu as mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    
    url:"/nomApplication/servletSAP?param="+sid+";"+num,
    
    ...
    PS : tu peux remplacer "/nomApplication" par #{request.contextPath}, comme ça, si un jour tu changes le nom de l'application, ça fonctionnera toujours
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #30
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Sa ne fonctionne pas... Ma servlet doit se situé où ? Actuellement elle est dans le paquage com/autre/servletSAP. Doit-je la mettre dans le repertoire WebContent ?

    Ou alors il faut que je modifie mon web.xml ?

  11. #31
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Lolosan Voir le message
    Sa ne fonctionne pas... Ma servlet doit se situé où ? Actuellement elle est dans le paquage com/autre/servletSAP. Doit-je la mettre dans le repertoire WebContent ?

    Ou alors il faut que je modifie mon web.xml ?
    Ta servlet peut se trouver n'importe où dans la hiérarchie des packages de ton application, c'est le web.xml qui fait le lien.

    D'après ton web.xml, elle se trouve ici "com.autres.servletSAP"
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #32
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Ok...

    Normalement lorsque je clic sur une instance j'ai un p:overlayPanel qui apparaît, si je choisi lancer le sapLogon j'ai un p:dialog qui apparaît en me proposant mes différents mandants. Ces différents mandants sont mes <a href

    Mon overlay n’apparaît plus.

    Avec Chrome j'ai cette erreur (dans la console) : Uncaught TypeError: undefined is not a function (fichier primefaces.js.xhtml?ln=primefaces&v=4.0:12)

    Avec IE : Cet objet ne gère pas cette propriété ou cette méthode (sa concerne primefaces.js.xhtml)

  13. #33
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ça devient compliqué là... as-tu une exception dans la console ?
    Peux-tu montrer le code source de la page ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #34
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Non aucune exception dans la console, seulement dans la console de Chrome (F12) et celle d'IE.

    J'ai trouvé autrement cet autre façon de faire :

    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
     
    <h:outputScript name="jquery/jquery.js" library="primefaces"/>
    <script type="text/javascript">
    function process(sid, num)
    {
    	alert('teste');
    	$ajax
    	({
    		url:"#{request.contextPath}/servletSAP?param="+sid+";"+num,
    		async: false,
    		cache: false,
    		success:function(text)
    		{
    			alert(text);
    		}
    	});				
    }
    </h:script>
    Comme apparemment primefaces utilise déjà jquery il y a un conflit. Avec ce code ma page et mes composant réagisse normalement. J'entre dans ma fonction, mais toujours pas dans ma servlet.

    Par contre pour le code, si tu veux le code complet de la page, je préférerais faire par mail. Je suis en stage certes mais soumise à une charte de confidentialité... Même s'il n'y a rien dans mon code de sensible, je préfère ne pas le même en entier sur le web.

  15. #35
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Tu as un problème là (<script> ... </h:script>)
    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
    
    <h:outputScript name="jquery/jquery.js" library="primefaces"/>
    <script type="text/javascript">
    function process(sid, num)
    {
        alert('teste');
        $ajax
        ({
            url:"#{request.contextPath}/servletSAP?param="+sid+";"+num,
            async: false,
            cache: false,
            success:function(text)
            {
                alert(text);
            }
        });                
    }
    </h:script>
    et retire la ligne (primefaces l'utilise, tu n'as pas besoin de la référencer)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:outputScript name="jquery/jquery.js" library="primefaces"/>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #36
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Oui le h c'était un mauvais copier/coller. J'ai retiré la ligne avec primefaces. Mais finalement j'ai pas besoin de jquery ? Si je l'ai mise c'était à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type="text/javascript" src="jquery-1.11.0.js"></script>

  17. #37
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Je suis trop bête !!! Et ces debogeur ne valent rien aussi ><

    j'avais écrit $ajax et c'est $.ajax !!

    Sa fonctionne comme il faut sous Chrome appel de la fonction et de ma servlet. Mais sous IE rien de rien, j'ai même pas ma pop up teste...

  18. #38
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Lolosan Voir le message
    Je suis trop bête !!!
    Mais non, on fait tous des erreurs d'étourderie

    C'est quelle version de IE ?
    Et tu utilises quelle version de Primefaces ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  19. #39
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Alors j'ai IE 8 et plus précisément : 8.0.7601.17514 (et pas de possibilité de le mettre à jour... Je dois faire avec)

    Et primefaces la 4.0 : sa pas de problème s'il faut changer la version.

    Mais le problème dois venir de ma page.

    J'ai isolé l'appel et la fonction dans une autre page et sa fonctionne parfaitement. Il n'y a aucune console sous IE pour aidé au débogage ?

  20. #40
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    Donc j'ai avancé. Mon code de base est celui ci :

    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
     
    <p:overlayPanel id="pan#{i.sid}" for="lienInst" hideEffect="fade">  
    	#{i.sid} <br></br>
    	<p:commandLink onclick="PF('dlg#{i.sid}').show()" value="SAP Logon"/> <br></br>
    	<p:dialog header="Choisir le mandant" widgetVar="dlg#{i.sid}" resizable="false">
    		<div class="datalist-noborder">
    			<p:dataList id="mandantlist" value="#{monBean.mandantInst(i)}" var="mandant" itemType="circle">  														 
    				<a href="javascript:;" onclick="process('#{i.sid}', '#{mandant.num}')">#{mandant.num}</a>
    			</p:dataList>
    		</div>
    	</p:dialog>
    	<h:commandLink action="#{monBean.goToInfo}" value="Informations">
    		<ui:param name="instanceParam2" value="#{i}"/> 
    	</h:commandLink>
     </p:overlayPanel>
    Avec sa, sa ne fonctionne pas. Mais si je sort mon appel de process du dialog sa fonctionne :

    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
     
    <p:overlayPanel id="pan#{i.sid}" for="lienInst" hideEffect="fade">  
    	#{i.sid} <br></br>
    	<p:commandLink onclick="PF('dlg#{i.sid}').show()" value="SAP Logon"/> <br></br>
            <a href="javascript:;" onclick="process('XXX', '000')">Test</a>
    	<p:dialog header="Choisir le mandant" widgetVar="dlg#{i.sid}" resizable="false">
    		<div class="datalist-noborder">
    			<p:dataList id="mandantlist" value="#{monBean.mandantInst(i)}" var="mandant" itemType="circle">  														 
    				<a href="javascript:;" onclick="process('#{i.sid}', '#{mandant.num}')">#{mandant.num}</a>
    			</p:dataList>
    		</div>
    	</p:dialog>
    	<h:commandLink action="#{monBean.goToInfo}" value="Informations">
    		<ui:param name="instanceParam2" value="#{i}"/> 
    	</h:commandLink>
     </p:overlayPanel>
    Quand je dis que sa fonctionne, c'est seulement celui où il y a écrit test, celui que j'ai laissé dans mon dialog ne fonctionne pas. J'ai testé aussi en enlevant tout ce qu'il y a dans mon dialog et en y mettant seulement mon appel (<a href="javascript:;" onclick="process('XXX', '000')">Test</a>) mais sa ne fonctionne pas.

    Si vous avez une idée pour m'aider à trouver pourquoi sa bloque dès que je le met dans mon dialog...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. javascript & managed bean
    Par zouhayr dans le forum Développement Web en Java
    Réponses: 15
    Dernier message: 05/06/2012, 14h22
  2. Réponses: 3
    Dernier message: 15/09/2006, 14h01
  3. utilisation d'un managed bean par un autre
    Par Romain93 dans le forum JSF
    Réponses: 6
    Dernier message: 28/07/2006, 10h29
  4. Réponses: 4
    Dernier message: 10/03/2006, 17h25

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