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 :

Problème avec RowSelector


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 68
    Par défaut Problème avec RowSelector
    Salut je suis entrain de développer une petite application web avec icefaces jsf 1.1 tomcat 5.5 hibernate et spring.
    Mon problème et que le RowSelector ne veut pas fonctionner je vous envoie mon code pour m'aider.
    Merci
    ça c mon Bean
    Code java : 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
    98
     
    package com.sungard.beans;
     
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Date;
     
    import javax.faces.event.AbortProcessingException;
    import javax.faces.event.ValueChangeEvent;
    import javax.faces.event.ValueChangeListener;
     
     
    import com.icesoft.faces.component.ext.RowSelectorEvent;
    import com.sungard.persistence.Employe;
    import com.sungard.service.IEmployeService;
     
     
    public class EmployeBean{
     
    	Employe employee;
    	private IEmployeService empServ;
    	public ArrayList<Employe> employes;
    	public  ArrayList<Employe> emps;
    	private boolean ascending = true;
    	public EmployeBean() {
    		emps=new ArrayList<Employe>();
    	}
    	public Employe getEmployee() {
    		return employee;
    	}
    	public void setEmployee(Employe employee) {
    		this.employee = employee;
    	}
    	public EmployeBean(Employe employee){
    		this.employee=employee;
    	}
    	public IEmployeService getEmpServ() {
    		return empServ;
    	}
    	public void setEmpServ(IEmployeService empServ) {
    		this.empServ = empServ;
    	}
    	public ArrayList<Employe> getEmployes() {
     
    		if(employes==null){
    			employes=new ArrayList<Employe>();
    			employes = empServ.findEmployes();
    		}
    		if(!isAscending()){
    		Collections.sort(employes, new Employe2Comparator());
    		}else{
    		Collections.sort(employes, new EmployeComparator());
    		}
    		System.out.println(employes);
    		return employes;
    	}
    	public void setEmployes(ArrayList<Employe> employes) {
    		this.employes = employes;
    	}
     
    	public String addBoutonAction(){
    		return "JETON_CREATE";
    	}	
     
    	public ArrayList<Employe> getEmps() {
    		return emps;
    	}
    	public void setEmps(ArrayList<Employe> emps) {
    		this.emps = emps;
    	}
    	public void rowSelectionListener(RowSelectorEvent event){
     
    		emps.clear();
    		/*emps.addAll(employes);
    		for(int i = 0; i <employes.size(); i++){
    	        employee = (Employe)employes.get(i);
    	        if(!employee.getSelected().booleanValue()){
    	        emps.remove(employee);
    	        }
    	        }*/
    		for(int i = 0; i <employes.size(); i++){
    	        employee = (Employe)employes.get(i);
    	        if(employee.getSelected().booleanValue()==true){
    	        emps.add(employee);
    	        }
    	        }
    		System.out.println(emps.size());
    	}
    	public boolean isAscending() {
    		return ascending;
    	}
    	public void setAscending(boolean ascending) {
    		this.ascending = ascending;
    	}
     
    }
    Mon Entité
    Code java : 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
    package com.sungard.persistence;
     
     
    import java.util.Date;
     
    import javax.faces.model.SelectItem;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
     
     
     
    @Entity
    @Table(name="EMPLOYES1")
    public class Employe {
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	private int id;
    	private String nom;	
    	private String prenom;
    	private Date date_embauche;
    	private float salaire;
    	private String fonction;
    	private Boolean selected;
     
    	public Employe() {
     
    	}
     
    	public int getId() {
    		return id;
    	}
     
    	public void setId(int id) {
    		this.id = id;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getPrenom() {
    		return prenom;
    	}
     
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
     
    	public Date getDate_embauche() {
    		return date_embauche;
    	}
     
    	public void setDate_embauche(Date date_embauche) {
    		this.date_embauche = date_embauche;
    	}
     
    	public float getSalaire() {
    		return salaire;
    	}
     
    	public void setSalaire(float salaire) {
    		this.salaire = salaire;
    	}
     
    	public String getFonction() {
    		return fonction;
    	}
     
    	public void setFonction(String fonction) {
    		this.fonction = fonction;
    	}
     
    	public Boolean getSelected() {
    		return selected;
    	}
     
    	public void setSelected(Boolean selected){
    		this.selected=selected;
    	}
     
    }
    et ça c'est mon interface
    Code xml : 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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    <f:view xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:ice="http://www.icesoft.com/icefaces/component">
     
    	<ice:outputDeclaration doctypeRoot="HTML"
    		doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN"
    		doctypeSystem="http://www.w3.org/TR/html4/loose.dtd" />
     
    	<html>
    	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta>
    	<title>Gestion des Employes</title>
    	<link href="./xmlhttp/css/xp/xp.css" rel="stylesheet" type="text/css" />
    	</head>
     
    	<body>
    	<h2>Gestion Des Employes</h2>
     
    	<p>Ici vous pouvez ajouter, supprimer et mettre a jour tous vos
    	employes</p>
    	<ice:form>
     
     
    		<ice:dataTable rows="5" id="Employes" var="employe"
    			value="#{employeBean.employes}"
    			sortAscending="#{employeBean.ascending}" >
     
    			<!-- ID -->
    			<ice:column >
    				<ice:rowSelector value="#{employe.selected}"
    					multiple="single"
    					selectionListener="#{employeBean.rowSelectionListener }"
    					preStyleOnSelection="true" />
    				<f:facet name="header">
    					<ice:commandSortHeader columnName="ID #" arrow="true">
    						<ice:outputText value="ID #" />
     
    					</ice:commandSortHeader>
    				</f:facet>
    				<ice:outputText value="#{employe.id}" />
    			</ice:column>
     
    			<!-- Nom -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Nom" />
    				</f:facet>
    				<ice:outputText value="#{employe.nom}" />
    			</ice:column>
     
    			<!-- Prenom  -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Prenom" />
    				</f:facet>
    				<ice:outputText value="#{employe.prenom}" />
    			</ice:column>
     
    			<!-- Date -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Date D'embauche" />
    				</f:facet>
    				<ice:outputText value="#{employe.date_embauche}" />
    			</ice:column>
     
    			<!-- Salaire -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Salaire" />
    				</f:facet>
    				<ice:outputText value="#{employe.salaire}" />
    			</ice:column>
    			<!-- Fonction -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Fonction" />
    				</f:facet>
    				<ice:outputText value="#{employe.fonction}" />
    			</ice:column>
    		</ice:dataTable>
    		<ice:dataPaginator id="Data_Page" for="Employes" paginator="true"
    			fastStep="3" paginatorMaxPages="4">
    			<f:facet name="first">
    				<ice:graphicImage url="./xmlhttp/css/xp/css-images/arrow-first.gif"
    					style="border:none;" title="First Page" />
    			</f:facet>
    			<f:facet name="last">
    				<ice:graphicImage url="./xmlhttp/css/xp/css-images/arrow-last.gif"
    					style="border:none;" title="Last Page" />
    			</f:facet>
    			<f:facet name="previous">
    				<ice:graphicImage
    					url="./xmlhttp/css/xp/css-images/arrow-previous.gif"
    					style="border:none;" title="Previous Page" />
    			</f:facet>
    			<f:facet name="next">
    				<ice:graphicImage url="./xmlhttp/css/xp/css-images/arrow-next.gif"
    					style="border:none;" title="Next Page" />
    			</f:facet>
    			<f:facet name="fastforward">
    				<ice:graphicImage url="./xmlhttp/css/xp/css-images/arrow-ff.gif"
    					style="border:none;" title="Fast Forward" />
    			</f:facet>
    			<f:facet name="fastrewind">
    				<ice:graphicImage url="./xmlhttp/css/xp/css-images/arrow-fr.gif"
    					style="border:none;" title="Fast Backwards" />
    			</f:facet>
    		</ice:dataPaginator>
    		<ice:dataPaginator id="EmpPag" for="Employes" rowsCountVar="rowsCount"
    			displayedRowsCountVar="displayedRowsCount"
    			firstRowIndexVar="firstRowIndex" lastRowIndexVar="lastRowIndex"
    			pageCountVar="pageCount" pageIndexVar="pageIndex">
    			<ice:outputFormat
    				value="{0} employes trouves, {1} employes affiches, du {2} au {3}. Page {4} / {5}."
    				styleClass="standard">
    				<f:param value="#{rowsCount}" />
    				<f:param value="#{displayedRowsCount}" />
    				<f:param value="#{firstRowIndex}" />
    				<f:param value="#{lastRowIndex}" />
    				<f:param value="#{pageIndex}" />
    				<f:param value="#{pageCount}" />
    			</ice:outputFormat>
    		</ice:dataPaginator>
    		<br>
    		<ice:commandButton value="Ajout"
    			action="#{employeBean.addBoutonAction}"></ice:commandButton>
    		</br>
    		<ice:dataTable rows="1" id="Emps" var="emp"
    			value="#{employeBean.emps}">
     
    			<!-- ID -->
    			<ice:column>
     
    				<f:facet name="header">
     
    					<ice:outputText value="ID #" />
     
    				</f:facet>
    				<ice:outputText value="#{emp.id}" />
    			</ice:column>
     
    			<!-- Nom -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Nom" />
    				</f:facet>
    				<ice:outputText value="#{emp.nom}" />
    			</ice:column>
     
    			<!-- Prenom  -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Prenom" />
    				</f:facet>
    				<ice:outputText value="#{emp.prenom}" />
    			</ice:column>
     
    			<!-- Date -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Date D'embauche" />
    				</f:facet>
    				<ice:outputText value="#{emp.date_embauche}" />
    			</ice:column>
     
    			<!-- Salaire -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Salaire" />
    				</f:facet>
    				<ice:outputText value="#{emp.salaire}" />
    			</ice:column>
    			<!-- Fonction -->
    			<ice:column>
    				<f:facet name="header">
    					<ice:outputText value="Fonction" />
    				</f:facet>
    				<ice:outputText value="#{emp.fonction}" />
    			</ice:column>
    		</ice:dataTable>
    	</ice:form>
    	</body>
    	</html>
    </f:view>
    et voici le code d'erreur
    java.lang.NullPointerException
    at com.icesoft.faces.component.ext.RowSelector.processDecodes(RowSelector.java:407)
    at com.icesoft.faces.component.ext.HtmlDataTable.processKids(HtmlDataTable.java:338)
    at com.icesoft.faces.component.ext.HtmlDataTable.iterate(HtmlDataTable.java:293)
    at com.icesoft.faces.component.panelseries.UISeries.processDecodes(UISeries.java:315)
    at javax.faces.component.UIForm.processDecodes(UIForm.java:56)
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605)
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605)
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605)
    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:138)
    at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
    at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:18)
    at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:132)
    at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:74)
    at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:31)
    at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
    at com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:16)
    at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
    at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:53)
    at com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:26)
    at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
    at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:131)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:56)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    at java.lang.Thread.run(Thread.java:595)

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 68
    Par défaut
    personne n'a d'idées???

  3. #3
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 68
    Par défaut
    j'ai essayé ça mais ça marche pas

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    Plusieurs choses :

    1) Il faut créer un RowSelectController pour ton tableau

    2) La propriété selected ne doit pas apparaître dans ton Entité mais dans ton managed bean

    Regarde bien les exemples du component showcase tout y est !

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 68
    Par défaut
    Même si on cré le champs selected dans l'entité ça marche mais puisque moi j'ai ajouté le champs qu'après avoir ajouter des employes (sans champs selected initiallisé) leur champs selected était à null ce qui a engendré la NullPointerException alors j'ai ajouté une condition dans mon entité
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public Boolean getSelected{
           if(selected==null|| selected==false)
                return false;
           return true;
    }
    et ça marche

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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