重要提示:
我的问题: 如何在Bean类
中设置primefaces Breadcrumb菜单我已经浏览了这些链接,但没有找到帮助
Show Prime faces Bread Crumb dynamically
http://javabeat.net/primefaces-breadcrumb/
这是我的代码:
Bean类
package test;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import org.primefaces.component.breadcrumb.BreadCrumb;
import org.primefaces.component.menuitem.UIMenuItem;
import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSeparator;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.DynamicMenuModel;
import org.primefaces.model.menu.MenuElement;
import org.primefaces.model.menu.MenuModel;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component("breadBean")
@Scope(value = "view")
@SuppressWarnings("all")
public class BreadCrumBean {
BreadCrumb breadCrum = new BreadCrumb();
MenuModel menuModel = new DynamicMenuModel();
private MenuModel menubar = new DefaultMenuModel();
@PostConstruct
public void init(){
try {
crumBean();
bread();
} catch (Exception e) {
e.printStackTrace();
FacesUtil.addErrorMessage(FacesUtil.getBundleKey(Constants.MESSAGE_RESOURCE, "general.generalError"));
}
}
public void crumBean(){
DefaultSubMenu home = new DefaultSubMenu("Home");
DefaultSubMenu home1 = new DefaultSubMenu("Home1");
DefaultSubMenu index = new DefaultSubMenu("Index");
DefaultMenuItem home2 = new DefaultMenuItem("Home2");
DefaultMenuItem home3 = new DefaultMenuItem("Home3");
DefaultMenuItem index1 = new DefaultMenuItem("Index1");
DefaultMenuItem index2 = new DefaultMenuItem("Index2");
index2.setAjax(false);
DefaultMenuItem index3 = new DefaultMenuItem("Index3");
index3.setUrl("http://www.primefaces.org/showcase/");
DefaultMenuItem index4 = new DefaultMenuItem("Index4");
DefaultMenuItem index5 = new DefaultMenuItem("Index5");
home1.addElement(index1);
home1.addElement(index2);
home1.addElement(index3);
index.addElement(index4);
index.addElement(index5);
index.addElement(new DefaultSeparator());
index.addElement(index3);
home.addElement(home1);
home.addElement(home2);
home.addElement(new DefaultSeparator());
home.addElement(home3);
this.menubar.addElement(home);
this.menubar.addElement(index);
}
public void bread(){
DefaultSubMenu bread = new DefaultSubMenu("Bread");
DefaultSubMenu bread1 = new DefaultSubMenu("Bread1");
DefaultSubMenu crumb = new DefaultSubMenu("Crumb");
DefaultMenuItem bread2 = new DefaultMenuItem("Bread2");
DefaultMenuItem bread3 = new DefaultMenuItem("Bread3");
DefaultMenuItem bread12 = new DefaultMenuItem("Bread12");
DefaultMenuItem bread21 = new DefaultMenuItem("Bread21");
bread21.setAjax(false);
DefaultMenuItem bread31 = new DefaultMenuItem("Bread31");
bread31.setUrl("http://www.primefaces.org/showcase/");
DefaultMenuItem crumb1 = new DefaultMenuItem("Crumb1");
DefaultMenuItem crumb2 = new DefaultMenuItem("Crumb2");
bread1.addElement(bread12);
bread1.addElement(bread21);
bread1.addElement(bread31);
crumb.addElement(crumb1);
crumb.addElement(crumb2);
crumb.addElement(new DefaultSeparator());
crumb.addElement(bread31);
bread.addElement(bread1);
bread.addElement(bread2);
bread.addElement(new DefaultSeparator());
bread.addElement(bread3);
this.menuModel.addElement(bread);
this.menuModel.addElement(crumb);
//How to set menuItem or menumodel in breadcrumb component
}
public BreadCrumb getBreadCrum() {
return breadCrum;
}
public void setBreadCrum(BreadCrumb breadCrum) {
this.breadCrum = breadCrum;
}
public MenuModel getMenuModel() {
return menuModel;
}
public void setMenuModel(MenuModel menuModel) {
this.menuModel = menuModel;
}
public MenuModel getMenubar() {
return menubar;
}
public void setMenubar(MenuModel menubar) {
this.menubar = menubar;
}
}
test.xhtml
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:p="http://primefaces.org/ui">
<h:head>
<style type="text/css">
.bread-crum {
border: none;
}
.bread-crum a {
text-decoration: inherit;
}
.bread-crum .ui-state-disabled{
opacity: inherit;
color:black;
font-weight:bold;
font-style: normal;
}
</style>
<script name="jquery/jquery.js" library="primefaces"></script>
<title>BreadCrumb</title>
</h:head>
<h:body>
<h:form id="testForm">
<p:menubar model="#{breadBean.menubar}" styleClass="bread-crum"></p:menubar>
<p:breadCrumb model="#{breadBean.menuModel}">
<p:menuitem value="#{breadBean.menuModel}"> </p:menuitem>
</p:breadCrumb>
</h:form>
</h:body>
</html>
答案 0 :(得分:1)
我已浏览过这些链接,但找不到帮助
如果你再看一遍(第一个答案),你会发现你的问题几乎是一样的。 <p:breadCrumb/>
组件的模型仅接受org.primefaces.model.menu.MenuItem
的元素作为其元素。
可能你没有得到任何异常,因为你有不同版本的PrimeFaces(在版本6.0中渲染空的痕迹)。
注意:在<p:menuitem/>
<p:breadCrumb/>