Bonjour,
J'ai cherché une solution à mon problème et je trouve pas, j'ai une requete select dans HQL qui marche bien et qui retourne le résultat que je mais dans une liste mais le problème c'est que j'arrive pas à récuperer les champs retournés dans mes colonnes du datatable, la requete est la suivante:
record = session.createQuery("select a.libRubFaq as lib, b.question as qst, b.reponse as rep from Rubriquefaq a, Faq b where a.idRubFaq = b.rubriquefaq.idRubFaq").list();
sachant que recorde est déclaré comme suit:
private List record = new ArrayList();
et dans la page jsp j'ai le code suivant:
<h:dataTable border="1" binding="#{Faq.data}" value="#{Faq.record}" var="info" cellspacing="4" >
<h:column>
<f:facet name="header">
<h:outputText value="#" />
</f:facet>
<h:selectBooleanCheckbox binding="#{Faq.check}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Rubrique" />
</f:facet>
<h:outputText value="#{info.lib}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Question" />
</f:facet>
<h:outputText value="#{info.qst}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Réponse" />
</f:facet>
<h:outputText value="#{info.rep}"/>
</h:column>
</h:dataTable>
en execution, j'obtiens l'erreur suivante:
javax.servlet.ServletException: Cannot get value for expression '#{info.data.lib}'
javax.faces.webapp.FacesServlet.service(FacesServlet.java:121)
org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
cause mère
javax.faces.FacesException: Cannot get value for expression '#{info.data.lib}'
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:421)
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
Merci pour votre aide
Partager