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

[Résolu]
Signaler
Messages postés
89
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
16 juin 2008
-
Messages postés
89
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
16 juin 2008
-
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

1 réponse

Messages postés
89
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
16 juin 2008

il fallait juste mettre la méthode getSelectedRow  dans la meme classe que getListToDataModel!
pb resolu