jsf - Getting Null with findComponent method? -


here java code added

 public void collapsetreebyid(actionevent event) throws ioexception {           string treeid = facescontext.getcurrentinstance().getexternalcontext().getrequestparametermap().get("treeid");           uiviewroot viewroot = facescontext.getcurrentinstance().getviewroot();           uitree tree = (uitree)viewroot.findcomponent(treeid);           tree.settoggletype(switchtype.server);;           }   

and jsf page changes

<a4j:commandlink actionlistener="#{inventoriesbean.collapsetreebyid}"                                 value="collapse" render="treeservtype">                                 <f:param value="treeservtype" name="treeid" />                             </a4j:commandlink> 

but getting null in line uitree tree = (uitree)viewroot.findcomponent(treeid);

here treeservtype id of tree

then means component given findcomponent search expression not exist in component tree. seem have passed sole component id , searching inside uiviewroot (the root of component tree). fail if target component inside namingcontainer component, such <h:form>.

if can't or don't want change findcomponent search expression represent absolute component id formid:treeid, , has same namingcontainer parent command link, should search via naming container parent instead.

string treeid = facescontext.getcurrentinstance().getexternalcontext().getrequestparametermap().get("treeid");   uicomponent namingcontainerparent = event.getcomponent().getnamingcontainer();  uitree tree = (uitree) namingcontainerparent.findcomponent(treeid);  // ...  

Comments