2014-11-01 81 views
1

我正在用primefaces樹組件編寫一些頁面。我想在樹節點選擇後更新outputLabel。標籤應顯示當前選定節點的名稱。我的問題在於primefaces在託管bean中爲此事件啓動監聽器。 Listener方法根本不會被調用。我能夠更新outputLabel(使用其他bean的當前時間值),但我不能使用偵聽器方法。這裏是我的網頁片段():p:沒有調用樹節點select listener

<p:tree value="#{directoryTreeBuilder.root}" 
     var="node" 
     dynamic="true" 
     style="border: none;" 
     selectionMode="single" 
     selection="#{directoryTreeBuilder.selected}"> 
    <p:ajax event="select" 
      listener="#{directoryTreeBuilder.onDirSelected}" 
      update=":currentDir"/> 
    <p:treeNode> 
     <h:outputText value="#{node}" /> 
    </p:treeNode> 
</p:tree> 
... 
<h:outputText id="currentDir" value="#{directoryTreeBuilder.selected}" /> 

這裏被管理的Bean:

@Named(value = "directoryTreeBuilder") 
@SessionScoped 
public class DirectoryTreeBuilder implements Serializable { 

/** 
* Directory facade bean. 
*/ 
@EJB 
private DirectoryFacadeLocal dirBean; 

/** 
* Tree structure root directory. 
*/ 
private TreeNode root; 

/** 
* Current selected directory. 
*/ 
private DefaultTreeNode selected; 

/** 
* Bean initialization method. 
*/ 
@PostConstruct 
public void init() { 
    //Root initiation. 
} 

/** 
* Root getter. 
* @return root directory with structure; 
*/ 
public TreeNode getRoot() { 
    return root; 
} 

/** 
* Get selected directory node. 
* @return primefaces treenode; 
*/ 
public TreeNode getSelected() { 
    return selected; 
} 

public void setSelected(TreeNode selected) { 
    this.selected = (DefaultTreeNode) selected; 
} 

/** 
* Selected event listener method. 
* @param e selection from primefaces 
*/ 
public void onDirSelected(NodeSelectEvent e) { 
    System.err.println("DIR SELECTED!"); 
    this.selected = (DefaultTreeNode) e.getTreeNode(); 
} 
} 

目前我正在從NetBeans的Glassfish的V4 8封裝此代碼。首先我使用PrimeFaces 4.0,但現在它在PrimeFaces 5.1上運行。沒有效果。

UPDATE:整頁代碼:http://pastebin.com/vEPtWtw2

+0

我認爲你的問題來自你沒有顯示的xhtml代碼。 – wittakarn 2014-11-02 11:30:46

+0

使用pastebin添加完整頁面代碼(在OP中)。 – 2014-11-02 13:12:19

回答

1

你應該巢p:treeh:form因爲JSF表單使用「回後」技術來提交表單數據回包含表單的頁面。

+0

謝謝!我解決了我的問題。對不起,我noob錯誤! – 2014-11-02 13:43:16

+0

歡迎您@ spoilt.exile。 – wittakarn 2014-11-02 14:04:57