Jsf 如何构建动态菜单
嘿,我使用jsf创建了一个新菜单,所以我想用从数据库加载的项构建一个动态菜单,但我不确定我需要什么函数,或者如何为菜单构建支持bean。我已经创建了数据库和三个表Rol,User,Rol x User,Items。还有什么是项表的好属性??。Primefaces为您提供了一种编程方式,可以使用Jsf 如何构建动态菜单,jsf,primefaces,Jsf,Primefaces,嘿,我使用jsf创建了一个新菜单,所以我想用从数据库加载的项构建一个动态菜单,但我不确定我需要什么函数,或者如何为菜单构建支持bean。我已经创建了数据库和三个表Rol,User,Rol x User,Items。还有什么是项表的好属性??。Primefaces为您提供了一种编程方式,可以使用org.Primefaces.model.menu.*类动态构建菜单。在托管bean中使用MenuModel,并在facelet页面上引用它。例如: public class MenuBean {
org.Primefaces.model.menu.*
类动态构建菜单。在托管bean中使用MenuModel
,并在facelet页面上引用它。例如:
public class MenuBean {
private MenuModel model;
public MenuBean() {
// Build your menu here
}
// Gets and sets
}
在你的脸上:
<p:menu model="#{menuBean.model}"/>
进一步详情:
Primefaces为您提供了一种编程方式,可以使用
org.Primefaces.model.menu.*
类动态构建菜单。在托管bean中使用MenuModel
,并在facelet页面上引用它。例如:
public class MenuBean {
private MenuModel model;
public MenuBean() {
// Build your menu here
}
// Gets and sets
}
在你的脸上:
<p:menu model="#{menuBean.model}"/>
进一步详情:
每个
Rol
都应该有项
所以你需要一个额外的表ItemsXRol
我会为项
选择以下列:id、标签、url、工具提示、父项、级别
诸如此类,当然你应该选择你的列来满足你的需要
然后,要使用Primefaces动态创建菜单,从数据库获取项目,可以使用MenuModel
对象
//MenuBean
model = new DefaultMenuModel();
//First submenu
DefaultSubMenu firstSubmenu = new DefaultSubMenu("Dynamic Submenu");
DefaultMenuItem item = new DefaultMenuItem("External");
item.setUrl("http://www.primefaces.org");
item.setIcon("ui-icon-home");
firstSubmenu.addElement(item);
model.addElement(firstSubmenu);
//Second submenu
...
在.xhtml文件中,您可以放置如下内容:
<p:menu model="#{menuBean.model}"/>
但是,要从数据库生成菜单获取值,可以使用DAO从实体获取菜单项
如果您的菜单具有n级格式,则可以使用递归方法生成MenuModel
,在该方法中,您必须迭代项
,以创建第一级菜单,然后递归地生成每个父亲的孩子
如果你想阅读更多关于
MenuModel
的信息,请转到每个Rol
都应该有项
,因此你需要一个额外的表ItemsXRol
我会为项
选择以下列:id、标签、url、工具提示、父项、级别
诸如此类,当然,你应该选择你的专栏来满足你的需求
然后,要使用Primefaces动态创建菜单,从数据库获取项目,可以使用MenuModel
对象
//MenuBean
model = new DefaultMenuModel();
//First submenu
DefaultSubMenu firstSubmenu = new DefaultSubMenu("Dynamic Submenu");
DefaultMenuItem item = new DefaultMenuItem("External");
item.setUrl("http://www.primefaces.org");
item.setIcon("ui-icon-home");
firstSubmenu.addElement(item);
model.addElement(firstSubmenu);
//Second submenu
...
在.xhtml文件中,您可以放置如下内容:
<p:menu model="#{menuBean.model}"/>
但是,要从数据库生成菜单获取值,可以使用DAO从实体获取菜单项
如果您的菜单具有n级格式,则可以使用递归方法生成MenuModel
,在该方法中,您必须迭代项
,以创建第一级菜单,然后递归地生成每个父亲的孩子
如果您想阅读更多关于
MenuModel
的信息,请转到以及如何设置url中的操作?我的菜单是这样的:
其中consultas是一个页面的名称。我想你可以用item.setCommand(“#{menuView.save}”)之类的东西来添加它,而不是url
Looh此处了解更多信息:以及如何设置操作而不是url?我的菜单是这样的:
其中consultas是一个页面的名称。我想你可以用item.setCommand(“#{menuView.save}”)之类的东西来添加它,而不是url代码>请点击此处查看更多信息: