我正在使用带有 ` 的 primefaces 3.1,有四个位置。在西位置(西),我添加了树形菜单。JSF 代码如下
<p:layoutUnit position="west" size="200" header="Left"
resizable="true" collapsible="true">
<h:form>
<p:tree dynamic="true" value="#{treeBean.root}" var="node" id="tree"
selectionMode="single">
<p:treeNode id="treeNode">
<h:outputText value="#{node}" id="lblNode" />
</p:treeNode>
</p:tree>
</h:form>
</p:layoutUnit>
在 TreeBean 我有
root = new DefaultTreeNode("Root", null);
TreeNode node0 = new DefaultTreeNode("Color", root);
TreeNode node00 = new DefaultTreeNode("Red", node0);
TreeNode node01 = new DefaultTreeNode("Blue", node0);
TreeNode node02 = new DefaultTreeNode("Green", node0);
当我展开并单击其中一个节点时是否可以进行导航,并且在单击各个节点时,我如何在布局的中心位置显示 jsf 页面。即,如果我单击节点蓝色,理想情况下我希望将另一个 jsf 页面加载到布局的中心位置。
任何帮助都是非常可观的。
谢谢
更新 1
我添加了以下代码,它会导航到 start.xhtml。但是 start.xhtml 不在我的布局中显示,start.xhtml 显示为新页面。
public void onNodeSelect(NodeSelectEvent event) {
try {
System.out.println(" here " + event.getTreeNode().getData());
FacesContext
.getCurrentInstance()
.getApplication()
.getNavigationHandler()
.handleNavigation(FacesContext.getCurrentInstance(),
"null", "/start.xhtml?faces-redirect=true");
} catch (Exception e) {
logger.info("error "+e.getMessage());
// TODO: handle exception
}