设置默认值 primefaces selectOneMenu 从木头 primefaces 选择元素B. jsf 从 ajax

在第一个形式中,我有一个多选择树 primefaces/填写 LDAP/, 并且在另一种形式中,我有一个组件 selectOneMenu primefaces. 我想制作默认值 selectOneMenu/此菜单中的第一个显示/ 所选树节点的值。 我试着用 f:ajax.. 但它不起作用,因为这些元素不属于相同的形式。 /姓名 selectOneMenu v属性 render 它不明了../

这是我的 index.xhtml, 其中包含所有这些元素 :


xml version="1.0" encoding="ISO-8859-1" ?
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url=http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"]http://www.w3.org/TR/xhtml1/DT ... ot%3B[/url]
<html xmlns="[url=http://www.w3.org/1999/xhtml"]http://www.w3.org/1999/xhtml"[/url] xmlns:f="[url=http://java.sun.com/jsf/core"]http://java.sun.com/jsf/core"[/url] xmlns:h="[url=http://java.sun.com/jsf/html"]http://java.sun.com/jsf/html"[/url] xmlns:p="[url=http://primefaces.org/ui"]http://primefaces.org/ui"[/url] xmlns:ui="[url=http://java.sun.com/jsf/facelets">]http://java.sun.com/jsf/facelets">[/url]
<h:head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<title>Insert title here</title>
<script src="JS/general.js" type="text/javascript"></script>
<link href="CSS/general.css" rel="stylesheet" type="text/css"/>
<script src="clean/clean-ajax-all.js"></script>
<script>
var crudmenu = "crudmenu";
var adduserform = "adduserform";
</script>
</h:head>
<body>
<h:form id="form">
<p:growl escape="false" id="messages" showdetail="true"></p:growl>
<p:tree id="treeMultiple" onnodeclick="this.form.submit//;" selection="#{treeBean.selectedNodes}" selectionmode="multiple" value="#{treeBean.root}" var="node">
<p:treenode>
<h:outputtext value="#{node}"></h:outputtext>
</p:treenode>
</p:tree>
<p:commandbutton actionlistener="#{treeBean.displaySelectedMultiple}" id="btnDisplay" rendered="false" update="messages" value="Display Selected"></p:commandbutton>
</h:form>
<div id="adduserform" name="adduserform" style="text-align: center; overflow: hidden; height: 0px; width: 270px; border: #040600 1px;">
<h:form>
<h:panelgrid border="1" columns="2">
ID : <p:selectonemenu effect="fade" filter="true" filtermatchmode="startsWith" panelstyle="width:150px" style="width:160px" value="" var="p">
<f:selectitem itemlabel="#{treeBean.selectedNodeValue}" itemvalue=""></f:selectitem>
</p:selectonemenu>


objectClass : <p:selectonemenu effect="fade" filter="true" filtermatchmode="startsWith" panelstyle="width:150px" style="width:160px" value="" var="p">
<f:selectitem itemlabel="Select One" itemvalue=""></f:selectitem>
</p:selectonemenu>
</h:panelgrid>
</h:form>
</div>
</body>
</html>


这是我的托管鲍勃 :


package org.primefaces.examples.view;

import java.io.Serializable;

import javax.faces.application.FacesMessage;
//other imports..

@ManagedBean/name = "treeBean"/
public class TreeBean implements Serializable {


private TreeNode root;

private TreeNode[] selectedNodes;

private String selectedNodeValue;


public TreeBean// {

populateTreeFromLdap//;

}


public String getSelectedNodeValue// {
if /selectedNodes != null && selectedNodes.length == 1/
for /TreeNode node : selectedNodes/
selectedNodeValue = node.getData//.toString//;
return selectedNodeValue;
}


public void setSelectedNodeValue/String selectedNodeValue/ {
this.selectedNodeValue = selectedNodeValue;
}


public void populateTreeFromLdap//{
//code to get entries from LDAP..
}


}

public TreeNode getRoot// {
return root;
}

public TreeNode[] getSelectedNodes// {
return selectedNodes;
}

public void setSelectedNodes/TreeNode[] selectedNodes/ {
this.selectedNodes = selectedNodes;
}

public void displaySelectedMultiple/ActionEvent event/ {
if /selectedNodes != null && selectedNodes.length > 0/ {
StringBuilder builder = new StringBuilder//;

for /TreeNode node : selectedNodes/ {
builder.append/node.getData//.toString///;
builder.append/"<br/>"/;
}

FacesMessage message = new FacesMessage/FacesMessage.SEVERITY_INFO,
"Selected", builder.toString///;

FacesContext.getCurrentInstance//.addMessage/null, message/;
}
}
}


问题是如何更新 "#{treeBean.selectedNodeValue}" selectOneMenu 's itemLabel 发生树节点后的选择之后..

顺便说一下,我是新的 jsf 并且对传统使用的事实感到非常沮丧 ajax 装载
内容B. div 在其他页面上不再有效 jsf..i, 其中用于某些以前的应用程序 jsp/servlet, 它可以很好..

thnx 求助 !!
已邀请:

小姐请别说爱

赞同来自:

如果我明白你正在努力,那么我会捆绑 selectOneMenu 到Backbob上的值。 在你的 getSelectedNodeValue// 我会设置这个值。 完成这项工作的最后一部分是使用侦听器的事件,如下所示: primefaces.org/showcase-labs/ui/treeEvents.jsf.

要回复问题请先登录注册