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
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}" > <img src="images/navbits_finallink.gif" height="18" border="0" /> </h:commandLink> </h:column> <:H:datatable>page1 doit renvoyer vers ---> page2.jsp
documentsprogramme.java
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"; }Programme.java
Code :
public List<Programme> getListeProgrammes(){ /*~~lecture de la liste des programmes existants à partir de la table Programe ~~*/ try { Session session = HibernateUtil.currentSession(); ListeProgrammes= new ArrayList<Programme>(); 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; }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:
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)
ca fait plus d'une semaine que je suis bloquée sur ce pb, merci d'avance