Pb avec la récupération de la ligne selectionnée sous h:datatable / JSF [Résolu]

lucky82 89 Messages postés samedi 30 octobre 2004Date d'inscription 16 juin 2008 Dernière intervention - 6 juin 2008 à 22:57 - Dernière réponse : lucky82 89 Messages postés samedi 30 octobre 2004Date d'inscription 16 juin 2008 Dernière intervention
- 7 juin 2008 à 13:11
BJR à tous, 
je travaille avec eclipse europa, hibernate2 et jsf. Oracle comme SGBD

En fait j'arrive pas é récupérer la ligne selectionnée dans un composant <h:datatable>:

page1.jsp
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :

<h:dataTable border="1" width="885" cellspacing="1" rules="all" value="#{programme.listToDataModel}" var="prg" >
<h:column>
<f:facet name="header" >
<h:outputText value="Num" />
</f:facet>
<h:outputText value="#{programme.num}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Réf" />
</f:facet>
<h:outputText value="#{prg.idProgramme}" />
</h:column>
<h:column>


<f:facet name="header">
<h:outputText value="Désignation" />
         </f:facet>
        <h:outputText value="#{prg.designationProgramme}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Objet" />
</f:facet>
<h:outputText value="#{prg.objetProgramme}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Montant" />
</f:facet>
<h:outputText value="#{prg.montantProgramme}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Docs" />
</f:facet>
<h:commandLink hreflang="ges_docs_details.jsf" action="#{documentsprogramme.getSelectedRow}" >

</h:commandLink>
</h:column>
<:H:datatable>

<!-- END TEMPLATE: bbcode_code -->page1 doit renvoyer vers ---> page2.jsp

documentsprogramme.java
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
private List<Documents> ListeDocProg;
private DataModel dataModel;
private Programme o;

public List<Documents> getListeDocumentsProg(Integer IdProgramme ){

try {
Session session = HibernateUtil.currentSession();

ListeDocProg= new ArrayList<Documents>();
List list = session.find("from DocumentsProgramme where id_programme="+IdProgramme);
Iterator it = list.iterator();

while(it.hasNext()) {
Documents doc = (Documents)it.next();
ListeDocProg.add(doc);
}

HibernateUtil.closeSession();
} catch (HibernateException e) {
e.printStackTrace();
}
return ListeDocProg;
}

public Object getRowData(){
return dataModel.getRowData();
}

public String getSelectedRow(){

try {
o = new Programme();
o =(Programme) dataModel.getRowData();
int index = dataModel.getRowIndex();

//Programme p=new Programme();
System.out.print("hiiiiiii"+o.getIdProgramme());

}catch (Exception npe) {
//this.o = new Programme();
npe.printStackTrace();
}

return "ok";
}

<!-- END TEMPLATE: bbcode_code -->Programme.java
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
public List getListeProgrammes(){


/*~~lecture de la liste des programmes existants à partir de la table Programe ~~*/
try {
Session session = HibernateUtil.currentSession();

ListeProgrammes= new ArrayList();
List list = session.find("from Programme");
Iterator it = list.iterator();

while(it.hasNext()) {
Programme prg = (Programme)it.next();
ListeProgrammes.add(prg);
}

HibernateUtil.closeSession();
} catch (HibernateException e) {
e.printStackTrace();
}
return ListeProgrammes;
}

public DataModel getListToDataModel(){

if (dataModel == null)
dataModel= new ListDataModel();

ListeProgrammes=getListeProgrammes();
dataModel.setWrappedData(ListeProgrammes);
return dataModel;
}

public int getNum() {
Num++;
return Num;
}

<!-- END TEMPLATE: bbcode_code -->La liste des programme s'affiche, mais qd je clique sur la commandLink, j'ai pas le print dans la console, et de plus, j'ai un message d'erreur:
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
java.lang.NullPointerException
at com.safaqat.hibernate.Documentsprogramme.getSelectedRow(Documentsprogramme.java:69)
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:152)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at javax.faces.component.UIData.broadcast(UIData.java:926)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:458)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:763)
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:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

<!-- END TEMPLATE: bbcode_code -->ca fait plus d'une semaine que je suis bloquée sur ce pb, merci d'avance
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
lucky82 89 Messages postés samedi 30 octobre 2004Date d'inscription 16 juin 2008 Dernière intervention - 7 juin 2008 à 13:11
3
Merci
il fallait juste mettre la méthode getSelectedRow  dans la meme classe que getListToDataModel!
pb resolu

Merci lucky82 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de lucky82

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.