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 :

probleme compatibilité js et firefox 60.2


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Homme Profil pro
    autodidacte
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Par défaut probleme compatibilité js et firefox 60.2
    Bonjour,
    J'avais un code pour une application java EE avec du java script qui fonctionnait très bien jusqu'à présent sur IE et firefox. Mais depuis la mise à jour vers la version 60.2 les champs de texte qui contenaient une date sont envoyés à null.
    je vous joins le code :

    Dans le jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        <form method="post" action="<c:out value="${ param_edit.actionURL }" />">
            <input type="hidden" id="id" name="id" value="<c:out value="${activite.id}"/>"></input>
            <input type="hidden" id="p_date_deb" name="p_date_deb" value="<c:out value="${ activite.recupTexteDateDeb('dd/MM/YYYY') }" />"></input> 
            <input type="hidden" id="p_date_fin" name="p_date_fin" value="<c:out value="${ activite.recupTexteDateFin('dd/MM/YYYY') }" />"></input>
    (...)
        </form>
    dans le code java les fonctions de récupération :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        public String recupTexteDateDeb (String format){
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            String texteDateDeb = sdf.format(dateDeb);
            return texteDateDeb;
        }
     
        public String recupTexteDateFin (String format){
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            String texteDateFin = sdf.format(dateFin);
            return texteDateFin;
        }
    }

    Voila, jusqu'ici le code fonctionnait très bien jusqu'à la mise à jour de firefox, et fonctionne encore sur IE sans problème.
    Le problème se pose aussi si on essaye avec chrome
    Est ce que quelqu'un sait d'ou pourrait venir le problème et comment le corriger ? merci d'avance

  2. #2
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    si tu penses que c'est un problème JavaScript (en un seul mot) alors tu dois mettre ici le code JavaScript concerné.
    et de pas mettre tes extraits en Java, mais leur résultat dans la page HTML (commande = afficher le source dans le navigateur )

    Quand à ton code Java, s'il doit être écrit autrement, pour le savoir, tu dois le poster dans le forum JAVA, il y a une section " Développement Web en Java ".

  3. #3
    Membre habitué
    Homme Profil pro
    autodidacte
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Par défaut critique facile
    Citation Envoyé par psychadelic Voir le message
    si tu penses que c'est un problème JavaScript (en un seul mot) alors tu dois mettre ici le code JavaScript concerné.
    et de pas mettre tes extraits en Java, mais leur résultat dans la page HTML (commande = afficher le source dans le navigateur )

    Quand à ton code Java, s'il doit être écrit autrement, pour le savoir, tu dois le poster dans le forum JAVA, il y a une section " Développement Web en Java ".
    Bonjour psychadelic, je constate que tu as la critique facile.

    Il se trouve que je n'avais pas posté mon message dans ce forum initialement et Marco46 (Modérateur) m'a fait part qu'il serait plus approprié de le mettre dans servlet/JSP (ce qu'il a fait).
    Ainsi, si tu persistes dans ta critique, je te suggère de lui en faire part directement.

    Ma page jsp est associé à du javaScript et à une servlet Java. Le code js ne doit pas poser de problème, ce qui explique que je ne l'ai pas ajouté. Je n'ai mis que le code jsp et java qui semble poser un problème de compatibilité avec ff60.2

    Si j'avais mis mon post dans "développement web en java", tu aurais pu formulé également la même critique en me disant cette fois que j'aurais dû le mettre dans jsp ou dans js ou que sais-je.

    En général, lorsque les développeurs font part de leur problème, on leur reproche (à juste titre) d'être trop laconique. Quant à moi, c'est le contraire, on me reproche d'en avoir trop mis. Cherchez l'erreur !

    Au minimum, une page jsp est associé à du code quelque soit le langage utilisé. Donc il était pertinent que je l'ajoute.

    Ainsi, psychadelic, si tu n'es pas en mesure d'apporter un début de solution à mon problème, je te suggère de passer ton chemin. Merci par avance !

  4. #4
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Quand j'ai lu ton message il était dans le forum JavaScript.
    Le message de Marco à justement fait ce que te suggérais de faire. car ce message est bien maintenant dans la section " Développement Web en Java " comme je te l'ai indiqué.

    Quand à ton erreur, je pencherai pour un manque de header http. et ça c'est justement un problème dans ton code java et non JavaScript, ni de FireFox ou de Chrome.

  5. #5
    Membre habitué
    Homme Profil pro
    autodidacte
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Par défaut Manque de header http ???
    Citation Envoyé par psychadelic Voir le message
    Quand à ton erreur, je pencherai pour un manque de header http.
    Manque de "header http" ?? Peux-tu développer ? parce que cette expression ne veut rien dire. Comment mon code Java peux manquer de "header http" ?

    Cordialement.

  6. #6
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    parce que cette expression ne veut rien dire


    http://lmgtfy.com/?q=header+http

    il y forcément des instructions java pour remplir correctement ce header, comme dans tous les produits qui doivent gérer l'envor / réception de messages

    et stp, arrête de me prendre de haut. Mon premier message était justifié, puisqu'il précede celui de Marco46, il y a des heures sur les messages, vérifie,
    n'imagine pas que tes propos m'ont fait plaisir. des excuses seraient bienvenues.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    vu que le comportement change en fonction du browser, ce n'est a priori pas, dans une premier temps, le code du serveur qu'il faut remettre en cause, à prendre avec pincettes.

    Il manque des informations:
    A quel niveau tu détecte que les valeurs sont vides? Tu le vois dans la page web générée? Tu le vois dans l'analyseur réseau du browser? Tu le vois dans ta servlet? Autre? Il faut que tu nous détailles un peu le chemin que suit ta donnée depuis l'endroit où tu sais quelle existe jusqu'à l'endroit où tu constate qu'elle n'existe plus.
    A quoi ressemble de formulaire dans le browser (après génération du html, la source JSP à ce niveau ayant peu d'importance)?
    Si tu ouvre la console de développement de firefox, tu as le moindre warning affiché?
    Dans l'analyseur réseau de la console de développement firefox, tu vois quoi pour tes requêtes? Le post est bien transmis? Il est vide? Tu peux éventuellement sauver ça en HAR pour qu'on l'analyse?
    Le form est envoyé comment? En javascript? Avec un bon vieux bouton submit?
    Vu que le comportement varie en montant de version ainsi que sous chrome, j'aurais tendance à penser que tu tente de POST les données sur une url différente que celle où se trouve ta JSP, ce qui risque d'être bloqué par la sécurité si le domaine est différent.

    @psychadelic si t'as la moindre info sur le header http dont tu parle, ce serait bien de préciser à quel header tu pense. Parce que nous on ne peut pas deviner.

  8. #8
    Membre habitué
    Homme Profil pro
    autodidacte
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Par défaut
    Citation Envoyé par psychadelic Voir le message
    Psychadelic, initialement "header http" ne me disait rien. Ce n'est qu'en utilisant ton lien ci-dessus que j'ai compris que tu faisais allusion à ma balise <head> de ma page jsp. Donc en cliquant sur ce lien, je n'ai pas trouvé d'information susceptible de m'aider. Toutefois je te joins ce qui se trouve dans ma balise et si quelque chose manque, je te serais reconnaissant de m'en informer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title><c:out value="${ param_edit.titre }" /></title>
    <link type="text/css" rel="stylesheet" href="<c:url value="/inc/css/style.css"/>" />
    <script type="text/javascript" src="<c:url value="/inc/scripts/jquery-3.3.1.js"/>"></script>
    <script type="text/javascript" src="<c:url value="/inc/scripts/scripts_calendrier.js"/>"></script>
    <script type="text/javascript" src="<c:url value="/inc/scripts/scripts.js"/>"></script>
    </head>

  9. #9
    Membre habitué
    Homme Profil pro
    autodidacte
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Par défaut
    Tchize,

    Dans chrome et dans FF60.2, ma page s'affiche comme cela :
    Nom : gesact1.jpg
Affichages : 506
Taille : 25,1 Ko
    alors que les dates doivent être préremplies à la date du jour comme ceci :
    Nom : gesact2.jpg
Affichages : 506
Taille : 20,9 Ko
    Malgré tout, si je clique sur les dates pour forcer l'affichage d'une date, elle n'est pas pris en compte, ce qui génère un NullPointerException pour les dates en question. Mon bouton "submit" en fin de page me renvoie à la servlet par POST.
    Voilà ma page d'erreur :
    Nom : gesact3.jpg
Affichages : 508
Taille : 405,0 Ko
    Donc, le problème est les dates mais je ne voie pas ce que je peux faire de plus. Du coup, j'ai viré ma mise à jour de FF pour revenir à la version précédente. Mais l'idéal serait que je saches pourquoi mon code fonctionne sur une version et pas sur une autre.

    Cordialement.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    donc, tu pourrais nous donner le code html dans ton browser de la page que tu reçois? Parce que, comment elle s'affiche, ça nous aide pas beaucoup ...

    Et pour tout le reste des informations demandées, pareil, tu pourrais les fournir?

  11. #11
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Citation Envoyé par vincent80 Voir le message
    Psychadelic, initialement "header http" ne me disait rien. Ce n'est qu'en utilisant ton lien ci-dessus que j'ai compris que tu faisais allusion à ma balise <head> de ma page jsp.
    Pas du tout, comme initialement ton post était dans la rubrique JavaScript, je m'y suis intéressé.
    Pour moi le pb que tu rencontre est une histoire de transmission de message.
    ton code Java fabrique un message, celui-ci transite sur les serveurs d'internet, et fini par arriver sur le poste clent pour être traité par FireFox ou autre navigateur.

    Tout message qui transite sur internet à des headers, on trouve par exemple dedans les informations concernant l'adresse du destinataire, de la nature des infos qui transitent, etc.

    En général pour le codeur en Java (ou PHP dans mon cas), on n'intervient pas sur la composition de ces headers, mais on peut voir à quoi ils ressemblent avec une extension=> https://addons.mozilla.org/fr/firefo...p-header-live/.

    Si ces entêtes ne sont pas "au carré" un navigateur peut interpréter de travers le contenu du message.
    Surtout pour les version récentes de FireFox ou le filtrage des données entrantes est davantage examiné pour les questions de sécurité.

    Par exemple, en PHP, si mes réponses n'ont de Content-type qui corresponde à ce qu'il y a dans le message, et bien, ça ne passe plus sous FireFox, mais ça passe encore avec Edge. => http://php.net/manual/fr/function.header.php
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-type: application/json');
    (cas de réponse ajax parce que sinon il pense en xml par défaut)

    j'ai un peu cherché les équivalences du coté java =>
    https://www.baeldung.com/java-http-request
    https://docs.oracle.com/javase/6/doc...a.lang.String)
    https://docstore.mik.ua/orelly/java-...et/ch05_06.htm

    alors Ok, java comme PHP se préoccupent bien de placer les headers qui font bien, mais les valeurs par défaut peuvent ne pas correspondre.
    Puis il y a des commandes utiles pour gérer les caches (serveurs, proxies, ..)

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    La structure HTML de ton code n'est pas valide. La balise input n'a pas de balise fermante, soit tu le supprimes (html), soit tu le mets comme auto-fermante dans le cas d'un xhtml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            <input type="hidden" id="id" name="id" value="<c:out value="${activite.id}"/>">
            <input type="hidden" id="p_date_deb" name="p_date_deb" value="<c:out value="${ activite.recupTexteDateDeb('dd/MM/YYYY') }" />">
            <input type="hidden" id="p_date_fin" name="p_date_fin" value="<c:out value="${ activite.recupTexteDateFin('dd/MM/YYYY') }" />">
    A+.

  13. #13
    Membre habitué
    Homme Profil pro
    autodidacte
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,
    La structure HTML de ton code n'est pas valide. La balise input n'a pas de balise fermante, soit tu le supprimes (html), soit tu le mets comme auto-fermante dans le cas d'un xhtml.
    Bonjour andry.aime,

    En te lisant, j'y ai cru ... mais non. Le code sans la balise fermante input continue à fonctionner sur FF antérieur à 60.2 (j'ai viré la mise à jour ff pour revenir à la version antérieure), mais comme je n'ai pas modifié la version de chrome, ce navigateur m'affiche le même message d'erreur http 500. Je joins à toutes fins utiles, la suite du message dont le début se trouve plus haut :

    Nom : gesact4.jpg
Affichages : 503
Taille : 360,7 Ko

    Dans la console de mon Eclipse, j'ai une info que le code http 500 du navigateur n'a pas fourni, et dont je n'avais pas fait attention jusqu'à présent, à savoir que c'est un problème de "parse" de date :

    Nom : gesact4.jpg
Affichages : 516
Taille : 239,2 Ko

    Cordialement.

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Voilà le problème, la date est formaté en yyyy-MM-dd quand c'est envoyée et non plus en dd/MM/yyyy. Je pense que tu utilises une libraire Javascript de datecpiker qui utilise le locale de ton navigateur. L'ancienne version de ton Firefox utilise le local FR et la nouvelle EN/US. Et c'est pour ça aussi que la librairie n'arrive pas à parser la date pendant l'affichage du format dd/MM/yyyy. Il doit y avoir une option dans le datepicker que tu utilises pour choisir le format utiliser mais tu ne dois pas le laisser à utiliser le format par défaut selon le local utilisé par ton navigateur.

    PS: Poste directement le log dans la balise QUOTE mais n'envoie pas d'imprime écran.

    A+.

  15. #15
    Membre habitué
    Homme Profil pro
    autodidacte
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Par défaut Euréka !
    Merci à tous ! Vous m'avez apporté des éléments qui m'ont permis d'y voir plus clair.

    J'ai trouvé comment faire en sorte que mon code marche sur FF60.2 et Chrome 69.

    Dans ma jsp, je n'initialise plus le contenu de <input> comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            <input type="hidden" id="p_date_deb" name="p_date_deb" value="<c:out value="${ activite.recupTexteDateDeb('dd/MM/YYYY') }" />">
            <input type="hidden" id="p_date_fin" name="p_date_fin" value="<c:out value="${ activite.recupTexteDateFin('dd/MM/YYYY') }" />">
    Je le fais dans ma servlet :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    request.setAttribute( "date_deb" , paramA.recupTexteDateDeb("dd/MM/yyyy") );
                    request.setAttribute( "date_fin" , paramA.recupTexteDateFin("dd/MM/yyyy") );

    De plus, mon input n'est plus de type="date" mais de type="text" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="date_deb" name="date_deb" value="${ date_deb }" class="calendrier" size="8" onchange="maj_date_deb()" />
    Et cela marche quelque soit la version du navigateur.

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

Discussions similaires

  1. Probleme compatibilité IE, Netsacpe et firefox
    Par tjoce dans le forum Langage
    Réponses: 3
    Dernier message: 14/02/2011, 16h17
  2. [FLASH] Probleme compatibilité flash/firefox
    Par Benestcon dans le forum Flash
    Réponses: 4
    Dernier message: 17/10/2005, 14h53
  3. [CSS][Firefox] Probleme de footer sous firefox
    Par oknam dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 20/09/2005, 20h51
  4. probleme return confirm avec firefox
    Par druglord dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/08/2005, 10h14

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