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. #1
    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 JavaScript et Managed Bean
    Bonjour à tous,

    j'aimerais savoir s'il était possible de faire interagir du javascript et un managed bean et si oui comment et dans quel sens ?

    J'en aurais car ; dans ma page xhtml j'ai plusieurs p:commandLink. Actuellement, en fonction du lien sur lequel on clique certaines info sont envoyés à ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:commandLink value="Coucou" action="#{monBean.goTo(i, mandant.num)}" />
    Ma fonction goTo créer avec ces 2 paramètres (un objet instance et un string) une chaîne de caractères. Pour la créer, mon bean interroge ma base de données.

    Et c'est cette chaîne de caractère que j'aimerais envoyer à ma fonction javascript. Comment faire ?

    Merci

  2. #2
    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
    J'ai testé sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    	function maFonction()
    	{
    		alert("#{monBean.monString}");
    	}
    </script>
     
    <p:commandLink value="Coucou" action="#{monBean.goTo(i, mandant.num)}" oncomplete="maFonction()" />
    Maintenant ma fonction goTo crée un string (monString), auquel j'ai ajouté un getter.

    Résultat :
    - sous IE rien ne se produit ; dans les logs je ne le vois ni appeler la fonction goTo, ni le getter de monString.
    - sous chrome j'ai une pop up qui apparait avec rien comme corps ; dans les logs je vois que goTo est appelé, par contre mon getter n'est jamais appelé.

    J'ai réalisé le même test avec un simple alert('Coucou'). Sous chrome pas de problème, mais sous IE je n'ai rien qui s'affiche. Je ne comprend pas pourquoi car dans une autre page de mon site ce simple test fonctionne...

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Le javascript s'exécute dans le navigateur, les managed bean sont présent sur le serveur. La réponse simple est non. La réponse compliquée est: il existe des librairies JSF qui le font en interne et te fournissent des composant de haut niveau, comme par exemple pour exécuter des commandlink en ajax. Mais dans tous les cas, tu n'aura pas un truc tout simple genre j'appelle la méthode X du bean, je récupère le résultat et je continue en javascript.

  4. #4
    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
    Pourquoi demander à un ManagedBean d'exécuter un javascript ?
    Tu as plein de possibilité (surtout avec Primefaces) pour afficher un composant après avoir exécuté une fonction sur le serveur...

    Je n'ai rien compris à ton besoin, peux-tu expliquer clairement ce que tu cherches à faire ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    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 clairement :

    J'ai une fonction javascript qui me permet de lancer un programme (le SAP Logon) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    	function lancerstart() 
    	{
    		var w = new ActiveXObject("WScript.Shell");
    		var teste = "\"C:\\Program Files\\SAP\\FrontEnd\\SAPgui\\saplogon.exe\"";
    		w.run ('cmd /c "'+teste+'"'); 
    	}
    </script>
    J'ai besoin dans mon site de lancer ce programme mais pas seulement. Je dois lui fournir des options pour qu'il s'ouvre avec certains champs pré-remplis. Ces options correspondent à mon instance et à mon mandant. La seule façon que j'ai trouvé pour pouvoir ouvrir ce programme est de passer par du javascript. Car je ne peux rien installer sur les pc des utilisateurs. Donc je me suis tourné vers un code qui s’exécute coté client comme le programme en question est sur les postes clients.

    Au final pour créer ma commande j'ai besoin : d'interroger ma base de donnée pour connaitre le c:\Prog... (aujourd'hui l'instal est dans ce répertoire mais demain sa peut changer, je ne doit pas laisser sa en dur dans mon code), de passer par mon bean pour récupérer l'instance et le mandant.

    Ma commande finale ressemble à sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe" /SHORTCUT=" -sid="XXX" -client="000""
    Mon idée était de créer ma commande dans mon bean et de l'envoyé à mon javascript. Mais si vous avez une autre solution...

  6. #6
    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
    Pas besoin de tout ça...

    Tu ajoutes les propriétés dont tu as besoin dans ton bean et tu les initialises à la création du ManagedBean.
    Dans la page, tu n'as plus qu'à faire un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // code javascript
    ...
    var commande = "\"C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe\" /SHORTCUT=" -sid=\"#{monBean.attribut1}\" -client=\"
    
    #{monBean.attribut2}\""
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    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
    J'aimerais que ce sois si simple...

    En fait sur ma page web je représente plus d'une centaine de serveur. Et suivant sur lequel va appuyer l'utilisateur sa va appeler la fonction qui va modifier les 2 attributs... C'est ma fonction goTo qui initialise ces deux attributs.

  8. #8
    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
    Sinon je me pose une question. Dites moi si c'est réalisable, complètement bête ou je ne sais pas ^^ ...

    Si au moment du clic sur mon lien, j'ouvre une nouvelle page en lui fournissant ma chaîne de caractère, je pourrais exécuter directement ma fonction javascript comme le serveur n'aura plus besoin d'intervenir.

    Néanmoins je ne voudrais pas que l'utilisateur vois cette page qui ne servirait à rien. Serait-il alors possible, de charger cette page pour quelle lance ma fonction, puis de rediriger l'utilisateur vers une autre page sans qu'il n'est besoin d'intervenir ? Et si possible sans qu'il ne vois trop ce qu'il s'est passé (au pire c'est pas très grave mais bon dans l'idéal...).

    J'attend vos remarques, merci

  9. #9
    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
    Dans ce cas, utilises tout simplement ajax pour récupérer les attributs et envoyer la commande.
    En jQuery, ça ressemble à ceci
    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
     
    $.ajax({
     
        url:"./recuperationAttributServlet",
        async: false,
        cache: false,
        success:function(text) {
            var args = text.split(";");
     
            var commande = "\"C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe\"";
            commande += " /SHORTCUT=''";
            commande += " -sid=\"" + args[0] + "\"";
            commande += " -client=\"" + args[1] + "\"";
            ... 
        }
    });
    Tu as une servlet côté serveur (qui correspond "recuperationAttributServlet") et puis hop...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    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
    Oula je dois dire que tu m'as complètement pomé là... je ne connais ni ajax, ni jquery, ni les servlet... Ou alors tout juste de nom.

    De ce que je comprend ta fonction me créer ma commande si je lui envoi une chaine de caractere de ce type "XXX;000". Mais je le met où j'en fais quoi ? Je suis désolais mais là je comprend plus vraiment...

  11. #11
    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
    Petit exemple
    1- La servlet
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    package test;
     
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class RecuperationParametres extends HttpServlet
    {
        public static final long serialVersionUID = 1;
     
        @Override
        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
        {
            /*
             * Si besoin, on peut passer des paramètres à la requête
             */
            String param1 = request.getParameter("param1");
            String param2 = request.getParameter("param2");
     
            /*
             * On utilise pour récupérer les informations
             */
            String result1 = "XXX";
            String result2 = "000";
     
            /*
             * On renvoie la réponse
             */
            String result = result1 + ";" + result2;
     
            response.setContentType("text/plain");
            PrintWriter out = null;
            try
            {
                out = response.getWriter();
                out.write(result);
                out.flush();
            }
            catch (Exception e)
            {
                response.sendError(HttpServletResponse.SC_BAD_REQUEST);
            }
            finally
            {
                if (out != null)
                {
                    out.close();
                }
            }
        }
    }
    2- Le web.xml
    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
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        version="2.5"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     
        <servlet>
            <servlet-name>RecuperationParametres</servlet-name>
            <servlet-class>test.RecuperationParametres</servlet-class>
        </servlet>
     
        <servlet-mapping>
            <servlet-name>RecuperationParametres</servlet-name>
            <url-pattern>/recuperationParametres</url-pattern>
        </servlet-mapping>
     
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
    3- La page d'appel
    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
    36
    37
    38
    39
     
    <html>
     
    <head>
     
    <script type="text/javascript" src="jquery-1.7.1.js"></script>
    <script type="text/javascript">
     
    function process()
    {
        $.ajax({
     
            url:"./recuperationParametres",
            async: false,
            cache: false,
            success:function(text) {
                var args = text.split(";");
     
                var commande = "\"C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe\"";
                commande += " /SHORTCUT=''";
                commande += " -sid=\"" + args[0] + "\"";
                commande += " -client=\"" + args[1] + "\"";
                alert(commande); 
            }
        });
    }
     
    </script>
     
    </head>
     
    <body>
     
    Petit exemple :<br/>
    <br/>
    <a href="javascript:process()">Lancer le traitement</a>
     
    </body>
    </html>
    Là, j'utilise une version 1.7.1 de jQuery, il faut la télécharger à partir d'ici...
    Voilà, tu n'as plus qu'à adapter
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    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 je vois un peu mieux. Dis moi si j'ai compris :

    Quand je clic sur mon lien j'appel mon bean qui va envoyer les paramètres à la servlet. Je redirige l'utilisateur vers la nouvelle page (ta page d'appel) qui va récupérer la réponse dans la servlet et effectuer sa fonction.

    Si c'est plus ou moins sa, comment envoyer mes paremètres depuis mon bean ? Jusque là entre 2 bean je le faisait grâce à Flash :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // pour envoyer
    Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
    flash.put("commande", cmd);
     
    // pour recevoir
    Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
    String commande = (String) flash.get("commande");

  13. #13
    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 peux appeler directement la servlet en lui passant éventuellement des paramètres, pas besoin de passer par ton bean.
    Peux-tu montrer à quoi ressemble ta page de sélection ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    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
    Pour obtenir mes deux paramètres je ne suis pas obligé de passer par mon bean. Mais je vais y être obligé pour récupérer le chemin vers le programme (comme au final je veux le mettre dans la base ou dans un fichier, enfin je ne veux pas l'écrire en dur comme c'est le cas actuellement).

    Ma page ressemble à sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <ui:repeat var="i" value="#{monBean.listInstance}" >
         // ...
         <p:dataList value="#{monBean.mandantInst(i)}" var="mandant" itemType="circle">  
    	    <p:commandLink value="#{mandant.num}" action="#{monBean.goTo(i, mandant.num)}" /> 
         </p:dataList>
    </ui:repeat>
    En gros l'utilisateur sélectionne une instance, je lui propose les différents mandants associés à cette instance, il en sélectionne un et c'est là que je devrais lancer le programme.

    Mes deux paramètres sont accessibles dans ma page grâce à #{i.sid} et #{mandant.num}. Mais pas le chemin vers le programme.

  15. #15
    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
    De ce que je comprends là, tu n'as qu'à déplacer le code de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #{monBean.goTo(i, mandant.num)}
    vers la servlet et remplacer le commandLink par une balise <a> comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="javascript:appelServlet(#{i}, '#{mandant.num'}')">#{mandant.num}</a>
    (un truc comme ça)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    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 je vais tenter sa et je vous tiens au courant. Merci

  17. #17
    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 remplacé mon lien par sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="servletSAP?param=#{i.sid};#{mandant.num}">#{mandant.num}</a>
    Et dans ma servlet je récupère mes deux paramètre et les affiches dans ma console. Sous Chrome sa fonctionne et sous IE rien ne se produit... pourquoi ?

    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
     
    public class servletSAP extends HttpServlet
    {	
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
        {
        	System.out.println("---------------doGetservlet---------------------------");
     
            String param = request.getParameter("param");
     
            String[] test = param.split(";");
     
            String sid = test[0];
            String num = test[1];
            String result = "C: " + sid + " " + num;
     
            System.out.println("-------------result---"+result);
        }
    }
    Edit :
    J'ai jouté dans ma servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    request.setAttribute("commande", result);
    request.getRequestDispatcher("sapLogon.xhtml").forward(request, response);
    J'ai créer une nouvelle page sapLogon.xhtml à l’intérieure de laquelle j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type="text/javascript">
          alert('${commande}');
    </script>
    Sous Chrome sa fonctionne j'ai ma nouvelle page + la pop up qui apparaît avec ma commande. Sous IE lors du clic rien ne se produit. Mais si je lui complète l'url alors sa fonctionne. Y a-t-il un truc que j'ai loupé pour que sa ne fonctionne pas sous IE ? Et il faut que sa fonctionne sous ce navigateur car c'est le seul installé sur les postes client... -.-

    Autre chose, comment me re-re-diriger vers une autre page (sans action de l'utilisateur) ?

  18. #18
    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
    Ben non, c'est ta page en cours qui a la fonction javascript faisant l'appel à ta servlet, celle-ci renvoie en retour la chaîne de commande et c'est toujours ta fonction appelante qui fait la suite.
    Pour reprendre avec l'exemple que je t'ai donné
    Là, on est dans ta page


    function process() <--- cette fonction est appelée par ton lien dans la liste
    {
    $.ajax({

    url:"./recuperationParametres", <--- on appelle la servlet
    async: false,
    cache: false,
    success:function(text) { <--- en cas de succès, c'est cette méthode qui sera appellée pour traiter le retour de la servlet
    alert(text);
    }
    });
    }
    C'est plus clair ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  19. #19
    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
    A oui c'est bien plus clair, je n'avais pas vraiment compris l’intérêt de ta fonction ajax. C'est plus clair mais sa ne fonctionne pas du tout.

    Ma page xhtml de base :
    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
     
    <script type="text/javascript">			
    function process()
    {
    	$ajax({
    		url:"./servletSAP?param"+args[0]+";"+args[1],
    		async: false,
    		cache: false,
    		success:function(text)
    		{
    			alert(text);
    		}
    	});				
    }
    // ...
    <a href="javascript:process(#{i.sid}, #{mandant.num})">#{mandant.num}</a>
    </script>
    Ma servlet
    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
    36
    37
    38
     
    public class servletSAP extends HttpServlet
    {	
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
        {
        	System.out.println("---------------doGetservlet---------------------------");
     
            String param = request.getParameter("param");
     
            String[] test = param.split(";");
     
            String sid = test[0];
            String num = test[1];
            String result = "C: " + sid + " " + num;
     
            System.out.println("-------------result---"+result);
     
            response.setContentType("text/plain");
            PrintWriter out = null;
            try
            {
                out = response.getWriter();
                out.write(result);
                out.flush();
            }
            catch (Exception e)
            {
                response.sendError(HttpServletResponse.SC_BAD_REQUEST);
            }
            finally
            {
                if (out != null)
                {
                    out.close();
                }
            }
        }
    }
    Cette dernière n'est ni appelé par Chrome ni par IE...

    Et mon web.xml (même si lui je pense qu'il est bon, comme avec un autre code sa fonctionne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      <servlet>
      	<servlet-name>servletSAP</servlet-name>
      	<servlet-class>com.autres.servletSAP</servlet-class>
      </servlet>
      <servlet-mapping>
      	<servlet-name>servletSAP</servlet-name>
      	<url-pattern>/servletSAP</url-pattern>
      </servlet-mapping>
    Je ne doit pas appeler le process de la bonne maniere....

  20. #20
    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 devrais directement mettre tes 2 paramètres dans la signature de la méthode, ce serait plus lisible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function process(parametre1, parametre2)
    {
       ...
    }
    Tant qu'à faire, peux-tu placer un alert('ici') en première ligne de la méthode, on verra déjà si elle arrive ici
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 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