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
Post a Comment