In this example, we will learn how to build a dropdown menu programmatically with PrimeFace's MenuModel and menubar tag.
JSF page
src/main/webapp/index.xhtml<h:body style="margin:50px;">
<h2>PrimeFaces MenuBar Example</h2>
<p:menubar model="#{menuBean.menuModel}">
</p:menubar>
</h:body>
The manage bean
@ManagedBean
@ViewScoped
public class MenuBean {
private MenuModel model = new DefaultMenuModel();
@PostConstruct
public void init() {
addMenu("File", "New", "Open", "Close", "Exit");
addMenu("Edit", "Undo", "Redo", "Cut", "Copy");
addMenu(addMenu("View", "Summary"), "Tools", "Settings", "Layout");
addMenu("Help", "Help topics", "Support");
}
public DefaultSubMenu addMenu(String label, String... items) {
return addMenu(null, label, items);
}
public DefaultSubMenu addMenu(DefaultSubMenu parentMenu,
String label, String... items) {
DefaultSubMenu theMenu = new DefaultSubMenu(label);
for (Object item : items) {
DefaultMenuItem mi = new DefaultMenuItem(item);
mi.setUrl("#");
theMenu.addElement(mi);
}
if (parentMenu == null) {
model.addElement(theMenu);
} else {
parentMenu.addElement(theMenu);
}
return theMenu;
}
public MenuModel getMenuModel() {
return model;
}
}
To try examples, run embedded tomcat (configured in pom.xml of example project below):
mvn tomcat7:run-war
Output
Example ProjectDependencies and Technologies Used: - primefaces 6.1 primefaces
- jsf-api 2.2.14:
This is the master POM file for Oracle's Implementation of the JSF 2.2 Specification.
- jsf-impl 2.2.14:
This is the master POM file for Oracle's Implementation of the JSF 2.2 Specification.
- JDK 1.8
- Maven 3.3.9
|
|