3

我想将参数node传递给将由远程命令调用的函数doAction ,我该如何传递它?假设节点有属性名称类型,我想在 doAction 中使用它们,我该如何传递变量?

谢谢!

public static class node {
        String name;
        String type;

        //setters getters etc...
}

<p:remoteCommand name="doWhatYouWant" action="#{managedBean.doAction}" />

<p:treeTable value="#{managedBean.tree}" var="node">
<p:column>
        <p:commandLink value="Invoke action"  onclick="doWhatYouWant([params...])" />
</p:column>
</p:tree>

public void doAction() {
        // do something with var="node"
}
4

1 回答 1

6

我解决了这个问题

 <p:remoteCommand name="doWhatYouWant" action="#{managedBean.doAction}" />
 ...
 <p:commandLink value="Invoke action"  
     onclick="doWhatYouWant(
           [{name:'n', value:'#{node.name}'},
            {name:'t', value:'#{node.type}'}])" />

在支持 bean 中:

public void doAction() {
    FacesContext context = FacesContext.getCurrentInstance();
    Map<String, String> map = context.getExternalContext().getRequestParameterMap();
    String name = map.get("n"); // name attribute of node
    String type = map.get("t"); // type attribute of node  
    ...
}
于 2013-07-17T14:23:57.570 回答