RichFaces Tree Property 'type' not found for nodeFace.
s.ceno Mar 18, 2009 7:55 AMHallo everybody.
Before I posted this topic, I tried to find possibly related sollutions on this forum and internet with no success.
I use richfaces in portlet environment, JBoss Portal 2.7.1 RichFaces 3.3.0GA and JSF 1.2 Facelets 1.1.1.4 and Spring 2.5 and have succesfully rendered default tree.
I wanted to customize my nodes with custom icons,so I looked for example http://livedemo.exadel.com/richfaces-demo/richfaces/tree.jsf?tab=usage&cid=2364871
If I hard code my nodeFace in the tree, I have no problem.
I thought I add my nodeFace dinamically so I extended the TreeNodeImp and added new property type with it's Getter and Setter methods.
public class CustomNodeType extends TreeNodeImpl{
private String type;
public CustomNodeType (){
super();
}
public void setType(String type) {
this.type = type;
}
public String getType() {
return type;
}
}During the loading of the tree, I set the type of each node, dependent of my Data Object type I have to load on in the tree.
In the xhtml I have the tree something like this:
<rich:tree nodeSelectListener="#{treeProvider.selectNode}" reRender="selectedNode" ajaxSubmitSelection="true"
switchType="ajax" treeNodeVar="treeNode" value="#{searchTreeProvider.rootNode}"
var="item" ajaxKeys="#{null}"
nodeFace="#{item.type}">
<rich:treeNode id="id1" type="type1" iconLeaf="icon1.png"
icon="icon1.png">
<h:outputText id="idd1" value="#{item}" />
</rich:treeNode>
<rich:treeNode id="id2"
type="type2" iconLeaf="icon2.png" icon="icon2.png">
<h:outputText id="idd2" value="#{item}" />
</rich:treeNode>
</rich:tree>
When running the App, the tree is rendered with it's first level nodes but with the default tree icons comming with RichFaces and when I click the node to expand, I get the following exception:
javax.servlet.ServletException: javax.el.PropertyNotFoundException: /portlet/view.xhtml @78,35 nodeFace="#{item.type}": Property 'type' not found on type org.richfaces.model.TreeNodeImpl
javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
as a root cause.
I read in one other forum a suggestion that one should use rather the var="item" property the treeNodeVar="item" property of the tree component.
I did it and it resulted with the same exception.
I will appreciate any suggestion or redirection to another thread with similar problem.
Thanx in advance