2013-06-28 65 views
3

我想通過參數節點到函數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" 
} 
+0

請張貼doAction的代碼和你正在使用的PARAMS的格式。 – user1983983

+0

@ user1983983已更新 – ethanjyx

+0

也許你是在糾正問題,或者我不理解你的問題。你可以很容易地在''標籤中傳遞參數'',並取回backing bean方法中的參數,就像你做任何其他參數一樣 – kolossus

回答

5

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

解決了這個問題。在支持豆:

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 
    ... 
} 
相關問題