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 :

Taux de change dans appli jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut Taux de change dans appli jsp
    Bonjour à tous,

    J'aimerai savoir si vous savez comment faire pour insérer la valeur des taux de change du jour dans une appli jsp.

    C'est un peu comme si je voulais insérer la bourse dans mon appli jsp, sauf que là c'est les taux de change.

    Merci bonne fin de journée.

  2. #2
    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
    tu veux dire le taux du jour, récupérer dynamiquement? Il va falloir, je pense, souscrire à un service en ligne quelconque te vendant cette information.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    tu veux dire le taux du jour, récupérer dynamiquement?
    c'est exactemrent ca.

    A par le service en ligne il n'y a pas d'autres solution ? Je continue a chercher sur Internet.

  4. #4
    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
    d'autre solution? A part les encoder tous les jours à la main, je ne vois pas. Pour avoir le tauxdu jour, il faudra bien qu'un organisme financier te le fournisse, et en général ce genre d'information est payant, ils bossent pas gratuitement!

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    J'ai trouvé comment récupérer mon taux grace à un web service.

    Le probleme maintenant c'est que le résultat est dans une fonction javacsript:

    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
    <script type="text/javascript">
     
     
     
    //Méthode appelée par le script à la réception des données
    window.JSserializerOnLoad = function (result)
    {
        for(var i=0,str =''; i<result.length; i++)
                    if (result[i].code=='usd')
                    str += result[i].rate;
     
      //Affiche la liste complète des noms des monnaies disponibles
        sentResult(str);
    }
     
    function sentResult(leResult)
    {
            return leResult;                
    }
     
     
     
    </script>
     
    <script
        type="text/javascript"
        src="http://www.tekool.net/js_gateway.php?EuroConverter&getCurrency('USD')"
    >
    </script>
    Et je n'arrive pas a récupérer se résultat dans ma page jsp est ce que quelqu'un peut m'aider. Merci

  6. #6
    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
    attaque directement ce fichier plutot

    http://www.ecb.europa.eu/stats/eurof...xref-daily.xml

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    Merci de ta réponse mais je fait comment pour récupérer l'infos voulu dans ce fichier xml et pour que cela reste mis a jour tous les jours aussi?

  8. #8
    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
    pour lire le fichier, ce ne sont pas las api xml qui manquent en java (un petit tour dans les tutoriels de la section java). Pour être à jour, ben de manière assez évidente. tu lit le fichier une fois par jour....

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    Je ne comprend pas bien ton idée Tchize, je dois dire ou c'est moi qui suis bete.

  10. #10
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    J'ai trouvé comment récupérer mon taux grace à un web service.

    Le probleme maintenant c'est que le résultat est dans une fonction javacsript:

    Code :

    <script type="text/javascript">



    //Méthode appelée par le script à la réception des données
    window.JSserializerOnLoad = function (result)
    {
    for(var i=0,str =''; i<result.length; i++)
    if (result[i].code=='usd')
    str += result[i].rate;

    //Affiche la liste complète des noms des monnaies disponibles
    sentResult(str);
    }

    function sentResult(leResult)
    {
    return leResult;
    }



    </script>

    <script
    type="text/javascript"
    src="http://www.tekool.net/js_gateway.php?EuroConverter&getCurrency('USD')"
    >
    </script>

    Et je n'arrive pas a récupérer se résultat dans ma page jsp est ce que quelqu'un peut m'aider. Merci
    Est ce que quelqu'un pourrait m'aider pour cela. car c'est ma meilleure piste actuellement

  11. #11
    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
    Citation Envoyé par Black-tiger Voir le message
    Je ne comprend pas bien ton idée Tchize, je dois dire ou c'est moi qui suis bete.
    je ne vois pas ce que tu ne comprend pas. Tu va récupérer le XML, tu le lit avec un des outils XML que java fournis (c'est pas ce qui manque) et t'a plus qu'à y récupérer les entrée (chaque entrée étant un taux de change par rapport à l'euro).

  12. #12
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    Tchize, je suis en train de regarder ta méthode, cependant j'aurai quelques questions je le met ou le fichier xmlk dans mon appli et tu es sur que les taux du fichier vont changer chaque jour?

  13. #13
    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
    je le met ou le fichier xmlk dans mon appli

    où tu veux, l'important c'est que ton code y aie accès pour la parser.... Tu peux le mettre dans une DB, sur les répertoire temporaire, uniquement en mémoire, peu importe.


    et tu es sur que les taux du fichier vont changer chaque jour?

    tous les jours de bourses, comme c'est indiqué ici. http://www.ecb.europa.eu/stats/excha.../index.en.html c'est d'ailleurs la source utilisée par le site que tu mentionne dans ton premier post Pourqu'oi s'emm. à dépatouiller son JS quand on peux avoir un accès direct au ficher xml de la banque centrale

  14. #14
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 74
    Points : 15
    Points
    15
    Par défaut
    tchize_ je n'ai jamais fait de parsing xml. j'ai donc quelques difficultés.

    J'ai télécharger le fichier que tu m'as donner et l'ai placer sur mon burerau ensuite j'ai créer trois classes.

    Sax.java
    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
    package util;
     
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import javax.xml.parsers.*; 
    import java.io.*; 
     
    public class Sax {
     
    	public static void main(String[] args){
    		try{
    			// création d'une fabrique de parseurs SAX
    			SAXParserFactory fabrique = SAXParserFactory.newInstance();
     
    			// création d'un parseur SAX
    			SAXParser parseur = fabrique.newSAXParser();
     
    			// lecture d'un fichier XML avec un DefaultHandler
    			File fichier = new File("d:/Documents and Settings/b304265/Bureau/eurofxref-daily.xml");
    			DefaultHandler gestionnaire = new DefaultHandler();
    			parseur.parse(fichier, gestionnaire);
     
    		}catch(ParserConfigurationException pce){
    			System.out.println("Erreur de configuration du parseur");
    			System.out.println("Lors de l'appel à newSAXParser()");
    		}catch(SAXException se){
    			System.out.println("Erreur de parsing");
    			System.out.println("Lors de l'appel à parse()");
    		}catch(IOException ioe){
    			System.out.println("Erreur d'entrée/sortie");
    			System.out.println("Lors de l'appel à parse()");
    		}
    	}
    }

    ensuite exemple tuto java xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <annuaire>
    	<personne id="0">
    		<nom>nom0</nom>
    		<prenom>prenom0</prenom>
    		<adresse>adresse0</adresse>
    	</personne>
    	<personne id="1">
    		<nom>nom1</nom>
    		<prenom>prenom1</prenom>
    		<adresse>adresse1</adresse>
    	</personne>
    </annuaire>
    class java
    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
     
    public class Personne{
    	private int id;
    	private String nom, prenom, adresse;
     
    	public Personne(){}
     
    	public int getId(){return id;}
    	public String getNom(){return nom;}
    	public String getPrenom(){return prenom;}
    	public String getAdresse(){return adresse;}
     
    	public void setId(int id){this.id = id;}
    	public void setNom(String nom){this.nom = nom;}
    	public void setPrenom(String prenom){this.prenom = prenom;}
    	public void setAdresse(String adresse){this.adresse = adresse;}
     
    	public String toString(){
    		return new StringBuffer("Nom : ").append(nom).append(", ")
    			.append("Prenom : ").append(prenom).append(", ")
    			.append("Adresse : ").append(adresse)
    			.toString();
    	}
    }
    mon fichier 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?xml version="1.0" encoding="UTF-8"?>
    <gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
    	<gesmes:subject>Reference rates</gesmes:subject>
    	<gesmes:Sender>
    		<gesmes:name>European Central Bank</gesmes:name>
    	</gesmes:Sender>
    	<Cube>
    		<Cube time='2010-08-18'>
    			<Cube currency='USD' rate='1.2880'/>
    			<Cube currency='JPY' rate='109.93'/>
    			<Cube currency='BGN' rate='1.9558'/>
    			<Cube currency='CZK' rate='24.816'/>
    			<Cube currency='DKK' rate='7.4497'/>
    			<Cube currency='EEK' rate='15.6466'/>
    			<Cube currency='GBP' rate='0.82330'/>
    			<Cube currency='HUF' rate='278.37'/>
    			<Cube currency='LTL' rate='3.4528'/>
    			<Cube currency='LVL' rate='0.7084'/>
    			<Cube currency='PLN' rate='3.9414'/>
    			<Cube currency='RON' rate='4.2385'/>
    			<Cube currency='SEK' rate='9.4453'/>
    			<Cube currency='CHF' rate='1.3423'/>
    			<Cube currency='NOK' rate='7.9300'/>
    			<Cube currency='HRK' rate='7.2735'/>
    			<Cube currency='RUB' rate='39.1614'/>
    			<Cube currency='TRY' rate='1.9285'/>
    			<Cube currency='AUD' rate='1.4271'/>
    			<Cube currency='BRL' rate='2.2554'/>
    			<Cube currency='CAD' rate='1.3236'/>
    			<Cube currency='CNY' rate='8.7477'/>
    			<Cube currency='HKD' rate='10.0087'/>
    			<Cube currency='IDR' rate='11547.73'/>
    			<Cube currency='INR' rate='59.8800'/>
    			<Cube currency='KRW' rate='1512.47'/>
    			<Cube currency='MXN' rate='16.1869'/>
    			<Cube currency='MYR' rate='4.0514'/>
    			<Cube currency='NZD' rate='1.7940'/>
    			<Cube currency='PHP' rate='58.068'/>
    			<Cube currency='SGD' rate='1.7369'/>
    			<Cube currency='THB' rate='40.720'/>
    			<Cube currency='ZAR' rate='9.3375'/>
    		</Cube>
    	</Cube>
    </gesmes:Envelope>
    Exemple dernier fichier
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    public class PersonneHandler extends DefaultHandler{
    	//résultats de notre parsing
    	private List<Personne> annuaire;
    	private Personne personne;
    	//flags nous indiquant la position du parseur
    	private boolean inAnnuaire, inPersonne, inNom, inPrenom, inAdresse;
    	//buffer nous permettant de récupérer les données 
    	private StringBuffer buffer;
     
    	// simple constructeur
    	public PersonneHandler(){
    		super();
    	}
    	//détection d'ouverture de balise
    	public void startElement(String uri, String localName,
    			String qName, Attributes attributes) throws SAXException{
    		if(qName.equals("annuaire")){
    			annuaire = new LinkedList&lt;Personne&gt;();
    			inAnnuaire = true;
    		}else if(qName.equals("personne")){
    			personne = new Personne();
    			try{
    				int id = Integer.parseInt(attributes.getValue("id"));
    				personne.setId(id);
    			}catch(Exception e){
    				//erreur, le contenu de id n'est pas un entier
    				throw new SAXException(e);
    			}
    			inPersonne = true;
    		}else {
    			buffer = new StringBuffer();
    			if(qName.equals("nom")){
    				inNom = true;
    			}else if(qName.equals("prenom")){
    				inPrenom = true;
    			}else if(qName.equals("adresse")){
    				inAdresse = true;
    			}else{
    				//erreur, on peut lever une exception
    				throw new SAXException("Balise "+qName+" inconnue.");
    			}
    		}
    	}
    	//détection fin de balise
    	public void endElement(String uri, String localName, String qName)
    			throws SAXException{
    		if(qName.equals("annuaire")){
    			inAnnuaire = false;
    		}else if(qName.equals("personne")){
    			annuaire.add(personne);
    			personne = null;
    			inPersonne = false;
    		}else if(qName.equals("nom")){
    			personne.setNom(buffer.toString());
    			buffer = null;
    			inNom = false;
    		}else if(qName.equals("prenom")){
    			personne.setPrenom(buffer.toString());
    			buffer = null;
    			inPrenom = false;
    		}else if(qName.equals("adresse")){
    			personne.setAdresse(buffer.toString());
    			buffer = null;
    			inAdresse = false;
    		}else{
    			//erreur, on peut lever une exception
    			throw new SAXException("Balise "+qName+" inconnue.");
    		}          
    	}
    	//détection de caractères
    	public void characters(char[] ch,int start, int length)
    			throws SAXException{
    		String lecture = new String(ch,start,length);
    		if(buffer != null) buffer.append(lecture);       
    	}
    	//début du parsing
    	public void startDocument() throws SAXException {
    		System.out.println("Début du parsing");
    	}
    	//fin du parsing
    	public void endDocument() throws SAXException {
    		System.out.println("Fin du parsing");
    		System.out.println("Resultats du parsing");
    		for(Personne p : annuaire){
    			System.out.println(p);
    		}
    	}
    }
    Moi Je ne sais pas quoi mettre dans mon fichier java
    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
     
    package util;
     
    public class saxtaux extends DefaultHandler{
     
    	//résultats de notre parsing
    	private List<Taux> annuaire;
    	private Taux taux;
    	//flags nous indiquant la position du parseur
    	private boolean inAnnuaire;
    	//buffer nous permettant de récupérer les données 
    	private StringBuffer buffer;
     
    	// simple constructeur
    	public saxtaux(){
    		super();
    	}
    	//détection d'ouverture de balise
    	public void startElement(String uri, String localName,
    			String qName, Attributes attributes) throws SAXException{
    		if(qName.equals("annuaire")){
    			annuaire = new LinkedList&lt;Personne&gt;();
    			inAnnuaire = true;
    		}else if(qName.equals("personne")){
    			taux = new Taux();
    			try{
    				int id = Integer.parseInt(attributes.getValue("id"));
    				taux.setId(id);
    			}catch(Exception e){
    				//erreur, le contenu de id n'est pas un entier
    				throw new SAXException(e);
    			}
    			inPersonne = true;
    		}else {
    			buffer = new StringBuffer();
     
    				//erreur, on peut lever une exception
    				throw new SAXException("Balise "+qName+" inconnue.");
    			}
    		}
    	}
     
    }

    Tchize tu es sur que ta methode est plus facile que ma demande qui est de récupérer le resultat d'une fonction javascript.

  15. #15
    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
    parser du xml avec java est facile, avec les outils ad-hoc, comme jdom

    http://cynober.developpez.com/tutori...a/xml/jdom/#L3

    ca prend à peine quelque lignes. Aller tripatouiller un javascript pour l'interpréter dans ton code java, c'est une autre paire de manches.


    edit: et en rajoutant xpath ca devrais aller encore plus vite (cf cette doc http://zedros.developpez.com/tutoriels/java/xml/xpath/)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SAXBuilder sxb = new SAXBuilder();
    org.jdom.Document document = sxb.build(new File("fichier.xml"));
    racine = document.getRootElement();
     
    XPath xpa = XPath.newInstance("//Cube/Cube/Cube"); // devrais faire l'affaire....
    List listeNoeuds = xpa.selectNodes(racine);	// plus qu'a recuperer le currency et le rate de chaque Element de la liste

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/05/2012, 21h57
  2. Inclure HTML dans une jsp depuis une autre appli
    Par StefC dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 24/04/2008, 08h44
  3. [struts][jsp]Inclusion dans une jsp
    Par GreenJay dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/06/2004, 11h43
  4. [débutant]ou mettre un fichier java pour une appli jsp?
    Par zozolh2 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/05/2004, 15h20
  5. [WebServices] - Taux de change
    Par malbaladejo dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 03/02/2004, 16h20

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