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

Servlets/JSP Java Discussion :

JavaScript et Java Web


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par défaut JavaScript et Java Web
    Bonjour,

    Avant de poser ma question laissez moi vous présenter mon travail,
    J'ai une JSP qui à l'aide d'une classe java récupère des données depuis une base de donnée. Ces données doivent me permettre de créer des marqueurs sur une Google Map créée grâce à des fichiers javascripts séparés.

    Je souhaite savoir si il est possible de passer les données récupérés dans ma jsp à un fichier javascript ?

    Ou doit-je créer le code javascript dans ma jsp en fonction de ce que je récupère ?

    J'espère avoir été clair, sinon dite le moi.

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    Hum. Je pense que tu n'a pas totalement saisi ce que fait JSP ou ce que fait Javascript.

    JSP, en très gros, les experts me pardonneront ce raccourci rapide, génère du HTML en y incluant des données.

    Et le Javascript, qu'il soit dans un fichier à part ou dans le fichier .html (ou dans ton cas .jsp) est exécuté lorsque la page est chargé.

    Que le code soit dans un fichier séparé et inclus via la balise <script> ou écrit directement dans le fichier via la balise <script> encore elle!

    Maintenant, je dirais qu'au niveau bonne pratique, il est bon de mettre son javascript dans un fichier séparé.

    D'autant que JSP est déjà assez touffu comme cela.

    Et oui, tu peux passer des variables via JSP à javascript, par exemple :


  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    Ou doit-je créer le code javascript dans ma jsp en fonction de ce que je récupère ?
    Oui c'est ça qu'il faut faire, car la jsp est executé bien avant le code javascript.
    Dans ton architecture il faut bien faire générer le javascript par le code JSP.

  4. #4
    Membre confirmé
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par défaut
    Tout d'abord merci pour ces clarifications!

    Mais j'ai malencontreusement un dernier 'problème'.

    Sur la même jsp je dois remplir un champ avec une date, qui me servira pour ma requête sql. Je ne sais pas comment passer le contenu du champ à la classe java et recharger la page avec le résultat de la requête sql.

    J'espère avoir été clair.

    Merci

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Histoire de clarifier les choses...

    La page JSP est exécutée sur le serveur d'application et renvoie une page HTML au navigateur qui en a fait la demande.
    Le code JavaScript s'exécute sur le navigateur.

    Ceci dit, je ne sais pas exactement ce que tu veux faire, si tu pouvais clarifier la demande, on pourrait t'aiguiller plus facilement.
    Pour ta dernière question, pour accéder au contenu d'un champ <input> de ta page via JavaScript, c'est assez simple et tu as le choix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var contenu = document.forms[0].nomVariable.value; // la donnée est dans le premier formulaire de la page
     
    var contenu = document.MonFormulaire.nomVariable.value; // la donnée est dans un formulaire nommé "MonFormulaire"
     
    var contenu = $(":input:[name='nomVariable']").val(); // en utilisant JQuery
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par défaut
    Dans une jsp j'ai un champ tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <p>Sélectionner une date: <input type="text" id="DatePicker" name="datePicker"/></p>
    	<input type="Submit" name="button" value="Rechercher"/>
    Ce champ sera rempli avec une date (du genre JJ/MM/AA).

    J'aimerai appeler la fonction Java suivante avec la date en argument
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <% ArrayList<String> ListeMarqueur =  new ArrayList<String>(ControleurMap.liste(LaDateDuChamp));
    for (String place : ListeMarqueur){ %>
    Est ce possible sans avoir à utiliser une servlet ?
    Si oui comment ?

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Que veux-tu dire par appeler une fonction java ?
    C'est forcément lié à une servlet, directement ou indirectement (pour les framework comme struts)...

    Peux-tu préciser ce que tu cherches à faire ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par défaut
    J'ai récupéré un projet déjà existant dans lequel il y a des classes java et des jsp.

    Les jsp appel directement le fonction java de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <%@page import="model.Clients"%>
    <%@page import="controleur.ControleurClients"%>
    <%@page import="controleur.ControleurUtilisateur"%>
    <%@page import="java.util.ArrayList"%>
     
    <%
    boolean error=false;
    ArrayList<Clients> Coll_cli = new ArrayList<Clients>(ControleurClients.liste());
     
    if (Coll_cli.isEmpty()) {
            error=true;
    }
    %>
    ....
    Je souhaitais donc rester dans cet esprit.

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu appelles la page JSP par un formulaire ou par un lien ?
    Dans le premier cas, si tu as un champ <input> qui correspond à la date la valeur sera transmise à la page appelée.
    Si c'est par un lien, il faudra passer par une méthode javascript et construire l'URL en ajoutant la date ("?nomParametre=" + valeur).

    Du côté de ta page JSP appelée, il suffit de faire un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    <%
    String dateString = request.getParameter("nomParametre");
     
    // Si tu dois passer un objet Date à une classe java, tu peux convertir via SimpleDateFormat
     
    %>
    ...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre confirmé
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par défaut
    Voici grosso modo la jsp :

    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
    <%@ page contentType="text/html; charset=UTF-8"%>
    <%@ page pageEncoding="UTF-8"%>
    <%@page import="controleur.ControleurMap"%>
    <%@page import="java.util.ArrayList"%>
     
    <!-- Script pour la google map -->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
    <script src="/Splitter/gmaps.js"></script>
    <script src="/Splitter/core.js"></script>
     
    <!-- Script pour le datePicker -->
    <script src="jquery-1.6.2.min.js"></script>
    <script src="jquery-ui-1.8.15.custom.min.js"></script>
    <link rel="stylesheet" href="jquery/jqueryCalendar.css">
    <script>
                    jQuery(function() {
                                    jQuery( "#DatePicker" ).datepicker();
                    });
    </script>
     
    <!-- Champ à remplir avec une date -->
    <form>
    	<p>Sélectionner une date: <input type="text" id="DatePicker" name="datePicker"/></p>
    	<input type="Submit" name="button" value="Rechercher"/>
    </form>
     
    <!-- Appel de la fonction avec la date en parametre -->
    <%
    boolean error=false;
    ArrayList<String> ListeMarqueur =  new ArrayList<String>(ControleurMap.liste(datePicker));
    for (String place : ListeMarqueur){ %>
     
    <!-- Utilisation de la réponse de la requete sql pour créer les marqueurs -->
    <script>
    var place =  <%= place.replaceAll("\\s", "+" )%>;
    geocoder = new GClientGeocoder();
    geocoder.getLatLng(place, function(point) {
        if (!point) {
            alert(place + " not found");
        } else {
            var info = "<h3>"+place+"</h3>Latitude: "+point.y+"  Longitude:"+point.x;
            var marker = new GMarker(point);
            map.addOverlay(marker);
            marker.openInfoWindowHtml(info);
        }
    });
    </script>
    <%} %>
     
    <!-- Div contenant la map google -->
    <div id="basic_map" class="map"></div>

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    <% boolean error=false;
    String datePicker = request.getParameter("datePicker");
    // Eventuellement, prévoir une conversion de la date String en objet Date via SimpleDateFormat...
    
    ArrayList<String> ListeMarqueur =  new ArrayList<String>(ControleurMap.liste(datePicker));
    ...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre confirmé
    Homme Profil pro
    ITESCIA
    Inscrit en
    Janvier 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : ITESCIA
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 101
    Par défaut
    Re bonjour, après plusieurs jours de travail, me voici face à un nouveau problème,

    je souhaite utiliser un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <% ArrayList<String> listeMarqueur = new ArrayList<String>(package.liste(datePicker)); %>
    pour afficher des marqueurs sur ma google map.

    J'ai trouver un example de code permettant de le faire mais uniquement à l'aide d'un champ html (avec pour label address)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    GMaps.geocode({
    	  address: $('#address').val(),
    	  callback: function(results, status) {
    	    if (status == 'OK') {
    	      var latlng = results[0].geometry.location;
    	      map.setCenter(latlng.lat(), latlng.lng());
    	      map.addMarker({
    	        lat: latlng.lat(),
    	        lng: latlng.lng()
    	      });
    	    }
    	  }
    	});
    Comme je suis toujours aussi mauvais en javascript, je viens vous solliciter
    pour savoir comment je peux faire.

    merci.

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    ça parait normal puisque c'est une fonction ajax...
    mais où est ton problème au juste, récupérer via jQuery la valeur du champ <input> ?
    Si c'est ça, tu fais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $(":input:[name='nomChamp']).val();
    Sinon, précise le problème
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. questions générales sur Java Web Start
    Par Shiryu44 dans le forum JWS
    Réponses: 12
    Dernier message: 11/04/2005, 15h33
  2. Exception sur Java Web Start
    Par Le Bressan dans le forum JWS
    Réponses: 5
    Dernier message: 01/02/2005, 10h52
  3. [Info]Développement Java Web Start
    Par szdavid dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 26/01/2005, 16h59
  4. java web start qui veut pas se lancer
    Par calvin dans le forum JWS
    Réponses: 4
    Dernier message: 30/06/2004, 11h42
  5. [JNDI] Equivalent avec Java Web Start ?
    Par cameleon2002 dans le forum Java EE
    Réponses: 8
    Dernier message: 18/09/2003, 18h55

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