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

JSF Java Discussion :

Sélection dans un dataTable


Sujet :

JSF Java

  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut Sélection dans un dataTable
    Bonjour,

    je n'arrive pas a récupérer la ligne active d'une dataTable et afficher continue de cette ligne sur <h:inputText id="myInput"></h:inputText> en cliquan sur le bouton
    J'ai essayer de comprendre les 3 méthode de la FAQ mais sans succès.

    Merci de votre aide !!

    je vous montre
    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
     
    	<rich:dataTable value="#{beansearch.perInfoAll}" var="item" rows="5" width="600px" style=" width : 408px;"   >  
      <f:facet name="header">
                <h:outputText value="Sorting Example"/>
            </f:facet>
        <rich:column  >
              <f:facet name="header">Name</f:facet>
              <h:outputText value="#{item.username}"/>
         </rich:column>
       <rich:column  >
               <f:facet name="header">Surname</f:facet>
               <h:outputText value="#{item.jobposition}"/>
         </rich:column>
    </rich:dataTable>
    <a4j:commandButton action="plus" value="++++++"   ></a4j:commandButton>
    <h:inputText id="myInput"></h:inputText>

    et mon bean

    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
     
    import java.util.logging.Level;
    import java.util.logging.Logger;
     import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
     
     
    import java.sql.*;
     
    public class Beansearch extends HttpServlet {
     
     
    private List<perInfo> perInfoAll = new ArrayList();
     
    public List<perInfo> getPerInfoAll() throws InstantiationException, IllegalAccessException, ClassNotFoundException {
    	try { 
    		Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    		 String serverName = "localhost";
    		    String mydatabase = "test";
    		    String url = "jdbc:mysql://" + serverName +  "/" + mydatabase; // a JDBC url
    			 String user = "root"; 
     
    	     String pass = "mus";
     
     
    	     java.sql.Connection connection = DriverManager.getConnection(url, user, pass);
    	     Statement instruction = (com.mysql.jdbc.Statement) ((java.sql.Connection) connection).createStatement();
     
     
    			     String sql = "  select  * from test.departement     " ;    
    					ResultSet resultat  = (ResultSet) instruction.executeQuery(sql);
    				 	while(resultat.next()){
     
    						String num=resultat.getString("nom").toString();
    						perInfoAll.add(new perInfo(resultat.getString(1),resultat.getString(2)));
     
    					}
            //session.close();
        }catch (SQLException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
     
    	}
        return perInfoAll;
    	}
     
     
     
    public void setPerInfoAll(List<perInfo> perInfoAll) {
    	this.perInfoAll = perInfoAll;
    }
     
     
    }
    et
    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
     
     
    public class perInfo {
     
    private String username;
    private String jobposition;
     
     
    public perInfo(String username,String jobposition) {
    this.username = username;
    this.jobposition = jobposition;
     
     
    }
     
    public String getusername() {
    return username;
    }
     
    public String getjobposition() {
    return jobposition;
    }
     
    public void setJobposition(java.lang.String jobposition) {
    		this.jobposition = jobposition;
    	}
     
    public void setUsername(java.lang.String username) {
    		this.username = username;
    	}
    }

  2. #2
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par ulysse031 Voir le message
    et mon bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public class Beansearch extends HttpServlet {
    ...
    Je ne vois pas l'interet d'heriter ton bean de httpServlet, c'est de JSF que tu fais et pas des servlets...

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    j'ai essayé de selectionné la ligne alors j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a4j:support event="onRowClick" actionListener="#{item.selectionChanged}" />
    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
     
    <rich:dataTable value="#{beansearch.perInfoAll}"  rowClasses="row1, row2" id="taskList" rows="4"
     
    columnClasses="50,100,100,100" onRowMouseOver="this.style.backgroundColor='#B5F3FB'"
     
    onRowMouseOut="this.style.backgroundColor='#{a4jSkin.rowBackgroundColor}'"
     
    	var="item"   width="600px" style=" width : 408px;"   >  
    <a4j:support event="onRowClick" actionListener="#{item.selectionChanged}" /> 	
     
      <f:facet name="header">
                <h:outputText value="Sorting Example"/>
            </f:facet>
        <rich:column  >
              <f:facet name="header">Name</f:facet>
              <h:outputText value="#{item.username}"/>
         </rich:column>
       <rich:column  >
               <f:facet name="header">Surname</f:facet>
               <h:outputText value="#{item.jobposition}"/>
         </rich:column>
     
     
    </rich:dataTable>
    mais pour voir si la ligne est selectionné

    ajouté methode dans la classe 'Beansearch'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void selectionChanged(ActionEvent event) {   
    System.out.println("rowSelected");         
    }
    mais message n'est pas affiché

  4. #4
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    voila j'essaie de m'avancer

    j'ai créer une classe inserer et dans cette classe j'ai essayé de récupérer la table et l'index de la ligne mais sans succé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a4j:support event="onRowClick" actionListener="#{inserer.test1}" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class inserer {
    public void test1(ActionEvent evt) {
    	   HtmlDataTable table = getParentDatatable((UIComponent) evt.getSource());
        int index = table.getRowIndex();
      }
    }
    message d'erreur
    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
     
    GRAVE: Received 'java.lang.NullPointerException' when invoking action listener '#{inserer.test1}' for component 'j_id3'
    10-sept.-2011 15:54:17 javax.faces.event.MethodExpressionActionListener processAction
    GRAVE: java.lang.NullPointerException
    	at inserer.test1(inserer.java:304)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
    	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
    	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99)
    	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771)
    	at javax.faces.component.UICommand.broadcast(UICommand.java:372)
    	at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
    	at org.ajax4jsf.component.UIDataAdaptorBase.broadcast(UIDataAdaptorBase.java:1387)
    	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
    	at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
    	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
    	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
    	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    bonsoir est ce que quelqu'un a une idée merci

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    je coince est ce que quelqu'un à une idée merci

  7. #7
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Par défaut
    Salut
    J'ai peut être pas bien pigé ton problème sinon c'est plutôt simple à gérer. Un exemple:
    <a4j:commandButton id="valideR1" reRender="table2" image="/resources/ok_l.jpg" action="#{bean.valider}"><f:setPropertyActionListener value="#{item.valeur}" target="#{bean.selection}"/></a4j:commandButton>
    Cela permet de recupérer item.valeur (bien sur avec var="item" et valeur etant un attribut existant) et de le mettre dans l'attribut selection de ton bean.

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    -Peut on voir ton faces-config?
    -Une question t'a été posée au dessus, à savoir pourquoi étendre HttpServlet dans un managedBean, je n'ai pas vu la réponse , alors?

  9. #9
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    -Peut on voir ton faces-config?
    -Une question t'a été posée au dessus, à savoir pourquoi étendre HttpServlet dans un managedBean, je n'ai pas vu la réponse , alors?
    Merci DevServlet !!!!
    Avant qu'on te donne d'autres idées(si on en a !!), tu peux faire un petit effort pour répondre aux question .

Discussions similaires

  1. Sélection de ligne dans une DataTable
    Par ruda.tom dans le forum JSF
    Réponses: 9
    Dernier message: 09/03/2007, 21h07
  2. Réponses: 3
    Dernier message: 19/07/2006, 14h28
  3. [JTable] couleur de sélection dans une JTable
    Par spoutyoyo dans le forum Composants
    Réponses: 7
    Dernier message: 06/12/2004, 11h43
  4. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19
  5. Réponses: 2
    Dernier message: 20/02/2004, 08h47

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