Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何构建动态菜单_Jsf_Primefaces - Fatal编程技术网

Jsf 如何构建动态菜单

Jsf 如何构建动态菜单,jsf,primefaces,Jsf,Primefaces,嘿,我使用jsf创建了一个新菜单,所以我想用从数据库加载的项构建一个动态菜单,但我不确定我需要什么函数,或者如何为菜单构建支持bean。我已经创建了数据库和三个表Rol,User,Rol x User,Items。还有什么是项表的好属性??。Primefaces为您提供了一种编程方式,可以使用org.Primefaces.model.menu.*类动态构建菜单。在托管bean中使用MenuModel,并在facelet页面上引用它。例如: public class MenuBean {

嘿,我使用jsf创建了一个新菜单,所以我想用从数据库加载的项构建一个动态菜单,但我不确定我需要什么函数,或者如何为菜单构建支持bean。我已经创建了数据库和三个表Rol,User,Rol x User,Items。还有什么是项表的好属性??。

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}"/>

进一步详情:
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请点击此处查看更多信息: