Bonjour,

J'ai dans ma base de données une table Client avec beaucoup de colonne Id, adresse... J'utilise le modèle MVC pour le développement avec le Hibernate et les PrimeFaces pour la vue.

J'aimerais parvenir à retourner dans un form, avec des inputtext PrimeFaces, toutes les informations propres à un client donné et selon la saisie de son id dans un inputtext, puis à l'aide d'un bouton Rechercher.

Je suis arrivé à retourner juste une une seule information de la table Client et voilà tous les codes nécessaires :

La méthode de recherche dans la classe ClientDao:
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
public List findByCriteria(Class clazz, Criterion critere) { 
List objects = null; 
try { 
openCurrentSessionwithTransaction(); 
Criteria crit = currentSession.createCriteria(clazz).add(critere); 
objects = crit.list(); 
} catch (Exception e) { 
e.printStackTrace(); 
; 
} finally { 
currentSession.close(); 
} 
return objects; 
 
}
La methode de recherche dans la classe ClientController:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
public void ChercherContact() { 
try { 
Client clt = new Client(); 
System.out.println("id " + idSociete); 
Criterion critere = Restrictions.eq("idSociete", 
client.getIdSociete()); 
List<Client> l = ClientDao.findByCriteria(Client.class, critere); 
clt = l.get(0); 
} catch (Exception e) { 
e.printStackTrace(); 
}
La page modifier.xhtml qui est ma vue:
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
98
99
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:p="http://primefaces.org/ui"> 
 
 
<h:form id="f"> 
<h:panelGrid columns="1" style="margin: 0 auto"> 
<p:graphicImage value="ooredoo.jpg" 
style="height : 204px; width : 590px; margin: 0 auto " /> 
 
</h:panelGrid> 
<h:panelGrid columns="4" style="margin: 0 auto"> 
<h:outputText value="ID CLIENT:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
 
<p:inputText value="#{clientCtr.client.idSociete}" id="id_societe" 
style="background-color:White;font-weight:bold;border-width:medium;border-color:Red;border-style:solid;"> 
</p:inputText> 
<p:commandButton action="#{clientCtr.ChercherContact}" 
update="f" value="CHERCHER" 
style="background-color:Red;color:White;font-weight: bold;font-size:  large;border-color:Black;float:center;border-style:outset; width :  176px;"> 
</p:commandButton> 
<p:commandButton id="quitter" value="QUITTER" action="e" 
onclick="window.close()" 
style="background-color:Red;color:White;font-weight: bold;font-size:  large;border-color:Black;float:center;border-style:outset; width :  176px;"> 
</p:commandButton> 
</h:panelGrid> 
<h:panelGrid columns="2" style="margin: 0 auto" id="grid"> 
<h:outputText value="Nom De La Société:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.nomSociete}" id="nom_societe" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
 
<h:outputText value="ID De La Société:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.idSociete}" id="id_societes" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
<h:outputText value="Route:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.route}" id="route" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
<h:outputText value="NCGR:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.ncgr}" id="ncgr" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
<h:outputText value="FQDN:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.fqdn}" id="fqdn" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
<h:outputText value="RTGRP:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.rtgrp}" id="rtgrp" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
<h:outputText value="OUTBPROXY:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.outbproxy}" id="outbproxy" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
<h:outputText value="Directory Number:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.directoryNumber}" 
id="directory_number" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
<h:outputText value="NDEST:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.ndest}" id="ndest" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
<h:outputText value="Operator Number:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.operatorNumber}" 
id="operateur_number" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
<h:outputText value="Additional DN :" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<h:selectOneListbox value="additional_dn" 
style="background-color:White;font-weight:bold;border-color:Red;border-border-style:solid; width : 169px; " /> 
 
<h:outputText value="SCRI:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.scri}" id="scri" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
 
<h:outputText value="UPDI:" 
style="FONT-SIZE: large; COLOR: #ff0000; FONT-WEIGHT: bold;" /> 
<p:inputText value="#{clientCtr.client.upd}" id="updi" 
style="background-color:White;font-weight:  bold;border-width:medium;border-color:Red;border-style:solid;"></p:inputText>  
</h:panelGrid> 
<h:panelGrid columns="2" style="margin: 0 auto"> 
 
 
<p:commandButton id="quittere" value="QUITTER" action="e" 
onclick="window.close()" 
style="background-color:Red;color:White;font-weight: bold;font-size:  large;border-color:Black;float:center;border-style:outset; width :  176px;" /> 
 
</h:panelGrid> 
</h:form> 
</html>
Et voilà mon interface :
Nom : modifier.png
Affichages : 194
Taille : 101,8 Ko
Quand j'exécute ça me retourne IndexOutOfBoundsException et quand j'enlève tous les inputtexts et que je laisse une seule zone de texte, ça fonctionne parfaitement, peu importe la zone de texte que je cherchais.

Le message d'erreur complet:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at tn.ooredoo.kpi.controller.ClientCtr.ChercherContact(ClientCtr.java:210)
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:278)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
at javax.faces.component.UICommand.broadcast(UICommand.java:311)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
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:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

Merci d'avance pour votre aide.