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 :

recuperer la valeur d'une colonne d'une collection en cliquant sur une ligne


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut recuperer la valeur d'une colonne d'une collection en cliquant sur une ligne
    bonjour

    j'ai une collection qui contient les libelle des article avec la quantité
    que je remplis avec un bean voici le code de la jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      <layout:collection name="etaStkForm" property="etat"  styleClass="SCROLL" length="2160" styleClass="FORM" width="1080" height="380">
         <layout:collectionItem title="_______ARTICLE______" property="art" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="____PROFIL____" property="prof" sortable="true"></layout:collectionItem>
          <layout:collectionItem title="DESTINATAIRE" property="dest" sortable="true"></layout:collectionItem>
          <layout:collectionItem title="N°SERIE DEBUT" property="start" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="N°SERIE FIN" property="end" sortable="true"></layout:collectionItem>
          <layout:collectionItem title="QTE" property="qte" sortable="true"></layout:collectionItem>
    et le code de l'action qui remplit la collection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Article article = new Article();
     article.setArt(rs.getString(1).trim());
    article.setProf(rs.getString(2).trim());
    article.setDest(rs.getString(3).trim());
    article.setStart(rs.getString(4).trim());
    article.setEnd(rs.getString(5).trim());
     list.add(article);
    etaStkForm.setEtat(list);
    je veux quand je clique sur une ligne recupérer les valeur des property
    "start" et "end" via javascript

    comment je peux faire ça ?
    merci de me répondre

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu peux ajouter un attribut onclick dans le tag layout:collectionItem pour exécuter une fonction Javascript et passer les valeurs des propriétés start et end via une EL.
    Pour que cela fonctionne, il faut aussi ajouter l'attribut id dans le tag layout:collection et l'attribut href dans le tag collectionItem :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <layout:collection name="etaStkForm" property="etat" id="item" styleClass="SCROLL" length="2160" styleClass="FORM" width="1080" height="380">
         <layout:collectionItem title="_______ARTICLE______" property="art" onclick="uneFonction('${item.start}','${item.end}');" href="javascript:void()" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="____PROFIL____" property="prof" sortable="true"></layout:collectionItem>
          <layout:collectionItem title="DESTINATAIRE" property="dest" sortable="true"></layout:collectionItem>
          <layout:collectionItem title="N°SERIE DEBUT" property="start" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="N°SERIE FIN" property="end" sortable="true"></layout:collectionItem>
          <layout:collectionItem title="QTE" property="qte" sortable="true"></layout:collectionItem>
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    voila ce que j'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     <layout:collection id="item"  selectName="dat_au" selectProperty="rng_id" selectType="radio" name="etaStkForm" property="etat"  styleClass="SCROLL" length="2160" styleClass="FORM" width="1080" height="380">
    <layout:collectionItem  onclick="etat('${item.start}','${item.end}')"    href="javascript:void();"  title="_______ARTICLE______" property="art" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="____PROFIL____" property="prof" sortable="true"></layout:collectionItem>
          <layout:collectionItem title="DESTINATAIRE" property="dest" sortable="true"></layout:collectionItem>
          <layout:collectionItem  title="N°SERIE DEBUT" property="start" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="N°SERIE FIN" property="end" sortable="true"></layout:collectionItem>
    et la fonction javascript etat () est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    		function etat(param1,param2)
    		{
    document.reservationForm.trans.value=param1; 
     
    		}
    mais y'a une erreur en javascript
    "erreur de synthaxe" je ne comprend pas ??

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Peut-être que les EL ne sont pas interpretées.
    Si tu mets un alert(param1) dans la fonction Javascript, est-ce la bonne valeur qui s'affiche dans la popup ?
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    voila la fonction javascript que j'ai défini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    		function etat(param1,param2)
    		{
        document.reservationForm.sdu.value=param1; 
            alert(param1) ;
    		}
    mais rien ne s'affiche ni dans le champs qui j'ai indiqué ni l'alert(elle ne s'affiche meme pas)

    y'a toujour "erreur de synthaxe "

    voila ce que j'ai déclaré dans la jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       <layout:collection id="item"  selectName="dat_au" selectProperty="rng_id" selectType="radio" name="etaStkForm" property="etat"  styleClass="SCROLL" length="2160" styleClass="FORM" width="1080" height="380">
    <layout:collectionItem  onclick="etat('${item.start}','${item.end}')"    href="javascript:void();"  title="_______ARTICLE______" property="art" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="____PROFIL____" property="prof" sortable="true"></layout:collectionItem>
          <layout:collectionItem title="DESTINATAIRE" property="dest" sortable="true"></layout:collectionItem>
          <layout:collectionItem  title="N°SERIE DEBUT" property="start" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="N°SERIE FIN" property="end" sortable="true"></layout:collectionItem>
    qu'est ce qui manque ??
    je ne comprend pas ??

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Peux-tu faire un test en mettant la fonction alert directement dans l'attribut onclick comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <layout:collectionItem onclick="alert('${item.start}');" href="javascript:void();"  title="_______ARTICLE______" property="art" sortable="true"></layout:collectionItem>
    Peux-tu montrer aussi ton web.xml et préciser quel serveur d'applications tu utilises et sa version ?
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    bon que je l'ai testé comme ça me donne la valeur de "start" dans l'alert

    pout le serveur d'application j'utilise tomcat 5.5 et voici mon 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
    21
    22
    23
    24
    25
    26
    27
    28
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Les EL sont donc bien interprétées.
    Tu as donc un problème avec la fonction javascript.
    As-tu défini plusieurs fonctions javascript ?

    Et si tu codes simplement des alert dedans, ça donne quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function etat(param1,param2)
    {
            alert(param1) ;
            alert(param2) ;
    }
    Modératrice Java - Struts, Servlets/JSP, ...

  9. #9
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    y'a le message d'erreur "erreur de synthaxe"

    je crois que le problème c'est dans le passage des paramètres??

  10. #10
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Ben c'est bizarre parce que ça fonctionne tel quel chez moi.
    Peux-tu montrer tout le contenu de la balise script ?
    Modératrice Java - Struts, Servlets/JSP, ...

  11. #11
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    la voila
    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
    91
    92
    93
    94
    95
    96
    97
     
       <layout:skin includeScript="true"/>
     
     
     
     
      <script type="text/javascript">
     
     
     
       function checkboxsorti() 
       {
     if  (document.etaStkForm.sortie.checked)
    {
    document.etaStkForm.sortie.value="true" ;  
     
    document.etaStkForm.hiddenSorti.value="true";
    }
    else
    {
    document.etaStkForm.sortie.value="false"; 
    document.etaStkForm.hiddenSorti.value="false";
     
    } 
       }
     
     
          function checkboxtdp() 
       {
     if  (document.etaStkForm.tdp.checked)
    {
    document.etaStkForm.tdp.value="true" ;
     
    document.etaStkForm.hiddenTdp.value="true";
    }
    else
    {
    document.etaStkForm.tdp.value="false"; 
    document.etaStkForm.hiddenTdp.value="false";
     
    } 
       }
          function effacer(form)
    		{
    		//document.etaStkForm.dat_du.value="";
    		document.etaStkForm.typ.value="";
    		document.etaStkForm.sdu.value="";
    		document.etaStkForm.sau.value="";
    		document.etaStkForm.profil.value="";
    		document.etaStkForm.article.value="";
    		document.etaStkForm.warehouse.value="";
    		document.etaStkForm.dist.value="";
    		document.etaStkForm.cds.value="";
    		document.etaStkForm.part.value="";
    		document.etaStkForm.PQ.value="";
    		document.etaStkForm.packaging.value="";
    		document.etaStkForm.HLR.value="";
    		document.etaStkForm.position.value="";
    		document.etaStkForm.sortie.value="false"; 
    		document.etaStkForm.sortie.checked=false;
    		document.etaStkForm.tdp.value="false"; 
    		document.etaStkForm.tdp.checked=false;
    		document.etaStkForm.hiddenTdp.value="false";
    		document.etaStkForm.hiddenSorti.value="false";
    		}
     
    		function activernum(){
     
     
    		if(document.getElementById('typ').value=="SIM")
    		{document.getElementById('sdu').maxLength="12";
    		document.getElementById('sau').maxLength="12";
    		document.getElementById('sdu').disabled=false;
    		document.getElementById('sau').disabled=false;
    }
    		if(document.getElementById('typ').value=="SCRATCH")
    		{
    		document.getElementById('sdu').maxLength="15";
    		document.getElementById('sau').maxLength="15";
    		document.getElementById('sdu').disabled=false; 
    		document.getElementById('sau').disabled=false;
    		}
     
    		function etat(param1)
    {
            alert(param1) ;    
     
    }
    }
     
     
     
     
      </script>
       <script type="text/javascript">
         function setHidden(value){document.etaStkForm.hidden.value=value;}
       </script>

  12. #12
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il y a un problème d'accolades.
    L'accolade permettant de fermer la fonction activernum est après la fonction etat.
    Il faut la mettre avant :
    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
       function activernum()
       {
    		if(document.getElementById('typ').value=="SIM")
    		{
    		document.getElementById('sdu').maxLength="12";
    		document.getElementById('sau').maxLength="12";
    		document.getElementById('sdu').disabled=false;
    		document.getElementById('sau').disabled=false;
    		}
    		if(document.getElementById('typ').value=="SCRATCH")
    		{
    		document.getElementById('sdu').maxLength="15";
    		document.getElementById('sau').maxLength="15";
    		document.getElementById('sdu').disabled=false; 
    		document.getElementById('sau').disabled=false;
    		}
       }
       function etat(param1)
       {
            alert(param1) ;    
       }
    Modératrice Java - Struts, Servlets/JSP, ...

  13. #13
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Points : 73
    Points
    73
    Par défaut
    t'a raison c_nvy merci beaucoup pour votre aide
    mais j'ai un autre problème maintenant
    voila ce que fais ma fonction "etat"
    la valeur que je récupère je la mis dans un champs hidden
    je submit le form pour exécuter une méthode "historique"
    dans laquelle je récuper la valeur du "champs hidden " et je fais des traitement pour afficher des données dans le popup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    		function etat(param1)
    		{
    document.getElementById('hiddenTest').value=param1;
    setHidden('historique',document.etaStkForm); 
    document.etaStkForm.submit(); 
     openpopup("stock.do?hidden=historique",'','750','450', event);                 
     
    }
    et voici le code de la méthode "historique"
    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
     
    	public ActionForward historique(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException, RowsExceededException, WriteException {
    		EtaStkForm etaStkForm = (EtaStkForm) form;
     
    		Connexion connexion=new Connexion();
    		Connection con=connexion.createConnection();
     
    		 Statement st = null;
    		  ResultSet rs = null;
    		  ArrayList list = new ArrayList();
    		  st=con.createStatement();
     
    //String rng=request.getParameter("dat_au");
     
    String rng=etaStkForm.getHiddenTest();
    String id=rng.substring(0,10);
    String act=rng.substring(11,14);
     
    		  System.out.println(rng);
    		  System.out.println(id);
    		  System.out.println(act);
     
    	rs=st.executeQuery("select tr.t_r_trans_type||'-'||tr.t_r_trans_whs||'-'||tr.t_r_trans_no,to_char(tr.t_r_date, 'DD/MM/YYYY HH24:MI:SS')from gss_transaction_range tr where tr.t_r_rng_id='"+id+"' and tr.t_r_rng_act_id='"+act+"' order by tr.t_r_date");
     
    		while (rs.next())
    		{
     Article art = new Article();
    art.setCode(rs.getString(1).trim()); 
       art.setDate(rs.getString(2).trim());
       art.setCode_art(rs.getString(1).trim());
     
    list.add(art);
    		}
     
    		etaStkForm.setEtat(list);
     
    		return mapping.findForward("pophistorique");	
    	}
    le problème c'est qu'il me ramène le popup vide malgré qu'il récupère bien la valeur du champs hidden

    je ne comprend pas ???

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/02/2013, 08h26
  2. [MVVM] Binding xaml sur une List/ObserveableCollection du Model plutôt que sur une propriété du Model
    Par uluquiorra dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 21/11/2012, 18h43
  3. Recuperer la valeur d'un colonne dans une listview
    Par skunkies dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/01/2009, 16h26
  4. Trier une GridView en cliquant sur une colonne
    Par rfaouzi dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/02/2007, 21h22
  5. Comment trier une DBGRID en cliquant sur une colonne
    Par sessime dans le forum Bases de données
    Réponses: 8
    Dernier message: 09/10/2004, 16h18

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