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

Struts 1 Java Discussion :

[ Struts ] Je récupère des valeurs undefined.


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Par défaut [ Struts ] Je récupère des valeurs undefined.
    Bonjour,
    voici le code de mon Action Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    LabelValueBean lvb2 = new LabelValueBean("Requête", "requete");
            listeTypeDem.add(lvb2);
            lvb2 = new LabelValueBean("Travaux", "travaux");
            listeTypeDem.add(lvb2);
            lvb2 = new LabelValueBean("Autre", "autre");
            listeTypeDem.add(lvb2);
            request.setAttribute("listeTypeDem", listeTypeDem);
    Celui de ma jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="type_dem" value="${sigToChange.type_dem}" onchange="disTypeDem()" >
                   <html:options collection="listeTypeDem" property="value" labelProperty="label"/>
            </html:select>
    Le code-source de ma page sous ie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            <select name="type_dem" onchange="disTypeDem()"><option value="requete">Requête</option>
    <option value="travaux">Travaux</option>
    <option value="autre">Autre</option></select>
    Ma fonction jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function disTypeDem(){
        alert("_"+document.forms[0].type_dem.value+"_");
        if(document.forms[0].type_dem.value == "autre"){
            document.forms[0].type_dem_l.disabled=false;
        }else{
            document.forms[0].type_dem_l.disabled=true;
        }
    }
    Ma valeur est bien initialisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value="${sigToChange.type_dem}"
    Et le résultat que je récupère est que ma fonction js disTypeDem renvoie toujours "undefined".
    Pourquoi, alors que les valeurs sont bien renseignées dans le select ???

  2. #2
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    undefined est renvoyé par l'alert, ou en tant qu'exception javascript ?

    Lorsque je copie colle ton code HTML dans un fichier cela fonctionne correctement.

  3. #3
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    bonjour,

    tu utilise document.forms[0]
    => est ce qu'il n'y a pas d'autre <form> dans ta jsp ?

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Par défaut
    Le undefined est renvoyé par l'alert.
    Comment puis-je savoir si c'est une exception Javascript ? (je n'ai rien de suspect qui s'affiche)

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Par défaut
    Citation Envoyé par fnobb
    bonjour,

    tu utilise document.forms[0]
    => est ce qu'il n'y a pas d'autre <form> dans ta jsp ?
    C'est la seule form de ma jsp.

  6. #6
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    et si tu affiche alert("_"+document.forms[0].type_dem+"_"); cela donne quoi ?

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Par défaut
    Citation Envoyé par fnobb
    et si tu affiche alert("_"+document.forms[0].type_dem+"_"); cela donne quoi ?
    Ca me donne

  8. #8
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Je te conseille de donner un ID à ton élément select. En effet, en HTML, les ID permettent d'accéder directement à un élément, les ID étant unique sur une page.

    Code JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html:select property="type_dem" value="${sigToChange.type_dem}" onchange="disTypeDem()" styleId="monElement">
          <html:options collection="listeTypeDem" property="value" labelProperty="label"/>
    </html:select>
    Code JS (je ne suis pas sûre à 100% mais c'est l'esprit) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function disTypeDem(){
        var elt = document.getElementById("monElement");
        alert("_"+elt.value+"_");
        if(elt.value == "autre"){
            document.forms[0].type_dem_l.disabled=false;
        }else{
            document.forms[0].type_dem_l.disabled=true;
        }
    }

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Par défaut
    J'ai l'erreur suivante :
    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
    90
    org.apache.jasper.JasperException: /etc/showDemToChange_OS.jsp(229,2) Attribute id invalid for tag select according to TLD
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	java.lang.reflect.Method.invoke(Method.java:585)
    	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
    	java.security.AccessController.doPrivileged(Native Method)
    	javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
    	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
    	java.security.AccessController.doPrivileged(Native Method)
    	java.security.AccessController.doPrivileged(Native Method)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	java.lang.reflect.Method.invoke(Method.java:585)
    	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
    	java.security.AccessController.doPrivileged(Native Method)
    	javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
    	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
     
     
    root cause 
     
    org.apache.jasper.JasperException: /etc/showDemToChange_OS.jsp(229,2) Attribute id invalid for tag select according to TLD
    	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
    	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
    	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:234)
    	org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:989)
    	org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:710)
    	org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441)
    	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
    	org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
    	org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:730)
    	org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441)
    	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
    	org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
    	org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
    	org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
    	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
    	org.apache.jasper.compiler.Validator.validate(Validator.java:1489)
    	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:166)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
    	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	java.lang.reflect.Method.invoke(Method.java:585)
    	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
    	java.security.AccessController.doPrivileged(Native Method)
    	javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
    	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
    	java.security.AccessController.doPrivileged(Native Method)
    	java.security.AccessController.doPrivileged(Native Method)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	java.lang.reflect.Method.invoke(Method.java:585)
    	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
    	java.security.AccessController.doPrivileged(Native Method)
    	javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
    	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
    Est-ce que l'attribut 'id' est autorisée dans la balise html:select ?

  10. #10
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    si ce n'est pas id essaie "styleId"

  11. #11
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Effectivement, excuse moi, fnobb à raison, c'est l'attribut styleId de html:select qui va généré un attribut id dans la balise select.

    Je fait un edit de mon précédent post

  12. #12
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Par défaut
    Ca marche.
    Merci à vous tous et... respect !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/03/2009, 12h23
  2. Connexion MySQL retourne des valeurs UNDEFINED !
    Par paricilas dans le forum Flash
    Réponses: 14
    Dernier message: 05/03/2007, 11h04
  3. Réponses: 3
    Dernier message: 22/06/2006, 23h23
  4. Réponses: 5
    Dernier message: 03/05/2006, 10h27
  5. [struts] [checkbox] récupération des valeurs cochées
    Par abourell dans le forum Struts 1
    Réponses: 16
    Dernier message: 10/06/2005, 20h58

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