Salut à tous,

est-il possible d'inclure une treeTable dans une datatable ?

je m'explique, je dispose d'une datatable qui affiche le contenu d'une liste List<myobject>, pour chaque objet de cette list je dispose d'un attribut treeModel qui correspond à l'objet DefaultTreeModel de (org.apache.myfaces.custom.tree.model.DefaultTreeModel)

voici le code partiel de la classe MyObject.java

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
public class MyObject {
...
 
 private DefaultTreeModel treeModel;
    public DefaultTreeModel getTreeModel() {
        return treeModel;
    }
 
    public void setTreeModel(DefaultTreeModel treeModel) {
        this.treeModel = treeModel;
    }
...
 
}
pour afficher la treetable associée à chaque ligne je procède comme ceci dans ma page jsf:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9

<t:dataTable value="#{bean.list}" var="myobject">
   ...
    <t:tree value="#{myobject.treeModel}" var="treeItem" expandRoot="true">
        ...
    </t:tree>
  ...
</t:datatable>
sachant que l'arbre treeModel est bien créer pour chaque ligne et il diffère d'une ligne à l'autre; (2 lignes n'auront pas le même arbre) j'obtien l'erreur suivante lors de l'exécution:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
javax.faces.el.PropertyNotFoundException: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'myobject' resolved to null
	com.sun.faces.application.ValueBindingValueExpressionAdapter.setValue(ValueBindingValueExpressionAdapter.java:154)
	org.apache.myfaces.custom.tree.taglib.TreeTag.doStartTag(TreeTag.java:349)
	org.apache.jsp.Search_jsp._jspx_meth_t_005ftree_005f0(Search_jsp.java:10749)
	org.apache.jsp.Search_jsp._jspx_meth_h_005fpanelGroup_005f24(Search_jsp.java:10694)
	org.apache.jsp.Search_jsp._jspx_meth_h_005fpanelGrid_005f14(Search_jsp.java:9922)
	org.apache.jsp.Search_jsp._jspService(Search_jsp.java:1380)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:415)
	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:458)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:126)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:274)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:154)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

il semblerai que jsf attend un bean et non une variable pour la valeur de l'attribut value de <t:tree>

j'ai biensûre essayer de déclarer la variable myobject comme étant aussi un bean c'est à dire qu'elle est non seulement une variable mais aussi un bean et le résultat obtenu est tout a fait étrange, j'obtient pour chaque ligne le même arbre.

merci de votre aide.