2014-11-01 76 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