Pb avec la récupération de la ligne selection
Résolu
lucky82
Messages postés
89
Date d'inscription
Statut
Membre
Dernière intervention
-
lucky82 Messages postés 89 Date d'inscription Statut Membre Dernière intervention -
lucky82 Messages postés 89 Date d'inscription Statut Membre Dernière intervention -
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
page1 doit renvoyer vers ---> page2.jsp
documentsprogramme.java
Programme.java
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:
ca fait plus d'une semaine que je suis bloquée sur ce pb, merci d'avance
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
<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
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
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:
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
A voir également:
- Pb avec la récupération de la ligne selection
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Convertisseur récupération de texte - Guide
1 réponse
Bonjour,
En ce qui concerne l'erreur que tu as, elle provient de la méthode getSelectedRow et c'est un NPE, donc elle provient forcément de ton bloc catch. Autrement dit, ça ne plante pas ton programme, ça effectue les traitements que tu as demandé dans ton bloc catch (ici tu demandes d'afficher la pile des appels, ce que tu reçois donc dans ta console).
A mon avis regarde de ce côté là : si tu as un NPE à chaque exécution, ça veut dire que ta méthode getSelectedRow ne fonctionne pas car elle n'exécute jamais le traitement pour laquelle elle a été programmée. Corrige donc cette méthode et revient nous tenir au courant.
Cordialement.
En ce qui concerne l'erreur que tu as, elle provient de la méthode getSelectedRow et c'est un NPE, donc elle provient forcément de ton bloc catch. Autrement dit, ça ne plante pas ton programme, ça effectue les traitements que tu as demandé dans ton bloc catch (ici tu demandes d'afficher la pile des appels, ce que tu reçois donc dans ta console).
A mon avis regarde de ce côté là : si tu as un NPE à chaque exécution, ça veut dire que ta méthode getSelectedRow ne fonctionne pas car elle n'exécute jamais le traitement pour laquelle elle a été programmée. Corrige donc cette méthode et revient nous tenir au courant.
Cordialement.
pb resolu