Jsf 2 primefaces树显示一个列表
我从primefaces多选择树showcase页面复制了XHTML和托管bean代码(对于基本树showcase,我也得到了相同的结果) 这是我的Jsf 2 primefaces树显示一个列表,jsf-2,tree,primefaces,Jsf 2,Tree,Primefaces,我从primefaces多选择树showcase页面复制了XHTML和托管bean代码(对于基本树showcase,我也得到了相同的结果) 这是我的索引.xhtml: <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio
索引.xhtml
:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>
</head>
<body>
<h:form id="form">
<p:growl id="messages" showDetail="true" escape="false" />
<p:tree value="#{treeBean.root}" var="node" selectionMode="multiple"
selection="#{treeBean.selectedNodes}" id="treeMultiple">
<p:treeNode>
<h:outputText value="#{node}" />
</p:treeNode>
</p:tree>
<p:commandButton value="Display Selected" update="messages"
actionListener="#{treeBean.displaySelectedMultiple}" id="btnDisplay" />
</h:form>
</body>
</html>
在此处插入标题
这是豆子:
package org.primefaces.examples.view;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;
@ManagedBean
public class TreeBean implements Serializable {
private TreeNode root;
private TreeNode[] selectedNodes;
public TreeBean() {
root = new DefaultTreeNode("Root", null);
TreeNode node0 = new DefaultTreeNode("Node 0", root);
TreeNode node1 = new DefaultTreeNode("Node 1", root);
TreeNode node2 = new DefaultTreeNode("Node 2", root);
TreeNode node00 = new DefaultTreeNode("Node 0.0", node0);
TreeNode node01 = new DefaultTreeNode("Node 0.1", node0);
TreeNode node10 = new DefaultTreeNode("Node 1.0", node1);
TreeNode node11 = new DefaultTreeNode("Node 1.1", node1);
TreeNode node000 = new DefaultTreeNode("Node 0.0.0", node00);
TreeNode node001 = new DefaultTreeNode("Node 0.0.1", node00);
TreeNode node010 = new DefaultTreeNode("Node 0.1.0", node01);
TreeNode node100 = new DefaultTreeNode("Node 1.0.0", node10);
}
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);
}
}
}
package org.primefaces.examples.view;
导入java.io.Serializable;
导入javax.faces.application.FacesMessage;
导入javax.faces.bean.ManagedBean;
导入javax.faces.context.FacesContext;
导入javax.faces.event.ActionEvent;
导入org.primefaces.model.DefaultTreeNode;
导入org.primefaces.model.TreeNode;
@ManagedBean
公共类TreeBean实现了可序列化{
独活根;
私有树节点[]所选节点;
公树{
root=新的DefaultTreeNode(“root”,null);
TreeNode0=新的默认TreeNode(“节点0”,根节点);
TreeNode1=新的默认TreeNode(“节点1”,根节点);
TreeNode2=新的默认TreeNode(“节点2”,根节点);
TreeNode0=新的默认TreeNode(“节点0.0”,node0);
TreeNode01=新的默认TreeNode(“节点0.1”,node0);
TreeNode10=新的默认TreeNode(“节点1.0”,节点1);
TreeNode11=新的默认TreeNode(“节点1.1”,节点1);
TreeNode000=新的默认TreeNode(“节点0.0.0”,node00);
TreeNode001=新的默认TreeNode(“节点0.0.1”,节点00);
TreeNode010=新的默认TreeNode(“节点0.1.0”,节点01);
TreeNode100=新的默认TreeNode(“节点1.0.0”,节点10);
}
公共树节点getRoot(){
返回根;
}
公共树节点[]getSelectedNodes(){
返回所选节点;
}
公共无效集合selectedNodes(TreeNode[]selectedNodes){
this.selectedNodes=selectedNodes;
}
public void displayedSelectedMultiple(操作事件){
if(selectedNodes!=null&&selectedNodes.length>0){
StringBuilder=新的StringBuilder();
用于(TreeNode节点:selectedNodes){
append(node.getData().toString());
builder.append(“
”);
}
FacesMessage=新的FacesMessage(FacesMessage.SEVERITY_INFO,“Selected”,builder.toString());
FacesContext.getCurrentInstance().addMessage(空,消息);
}
}
}
我得到的只是一张简单的清单:
•节点0•节点1
•节点2 似乎缺少Ajax、CSS或/或JavaScript代码。。。但在展示中没有提到要添加这一点。 谢谢你的帮助 雄猫7 日食朱诺 webapp配置: JSF2.1 动态webapp3.0
java 6请格式化您的代码。读起来很可怕。@RinaldoPJr它完成了!!这是一个新手的错误,对不起!:)@user1705922是否无法展开节点??我试过你的代码,效果很好。。你能说清楚你不能实现什么吗:)是的,我不能扩展节点;我还期望当鼠标在节点上时,节点的背景颜色会发生变化,但对我来说,什么都不会发生,我甚至无法选择它们。我在节点左侧也没有箭头,就像在showcase中一样。顺便说一下,在我的pom中,我有3.3 primefaces jar和JSF2.1.11JARS版本。它已经修复了!在我的firefox浏览器中,我打开了web控制台,发现了一个js错误(primefaces未定义),在jsf生成的浏览器中显示的源代码中,在primefaces咆哮标记中,我发现了以下消息{id:'form:messages',sticky:false,life:6000,escape:false,msgs:[{摘要:“我们的资源共享代理la cible«head»,mais aucun composant«head»n\u2019aétédéfini dans la vue”…解决方案是使用,而不是在树的形式所在的xhtml页面中使用。