首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hibernate中加载commandLink列表?

如何在hibernate中加载commandLink列表?
EN

Stack Overflow用户
提问于 2015-10-26 22:29:21
回答 1查看 64关注 0票数 1

我试图根据User权限加载一个页面列表。我的数据库中有一个存储角色、路径和页面名称的表。

我目前的代码是:

代码语言:javascript
复制
<h:commandLink action="principal.xhtml?faces-redirect=true">Principal</h:commandLink>
<br/>
<h:commandLink action="manterusuario.xhtml?faces-redirect=true">Usuários</h:commandLink>
<br/>
<h:commandLink action="manterfuncionalidade.xhtml?faces-redirect=true">Funcionalidades</h:commandLink>
<br/>
<h:commandLink action="admin.xhtml?faces-redirect=true">Configurações</h:commandLink>
<hr/>

有什么方法可以让for循环这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-03 14:03:50

首先,创建一个对象并从bean中返回该对象。假设你的目标是这样的。

代码语言:javascript
复制
public class MenuItem {
    private String action;
    private String text;

    // Getters and setters
}

假设您有一个UserBean,它绑定到示例xhtml (user.xhtml)页面。假设您可以从数据库中保存的信息创建这些MenuItem

代码语言:javascript
复制
@ManagedBean
@RequestScoped
public class UserBean {

    List<MenuItem> menuItemsForRole;

    // This service is responsible for converting database info to menuItem
    // @ManagedProperty("#{menuItemService}") // you may want to inject it
    MenuItemService menuItemService = ...; 

    @PostConstruct
    public void init(){
       menuItemsForRole = menuItemService.getMenuItemsForRole("MY_USER_ROLE");
    }

    // Getters & Setters & other properties
}

最后,在xhtml文件中,您可以这样做

代码语言:javascript
复制
   <ui:repeat var="menuItem" value="#{userBean.menuItemsForRole}" varStatus="status">
    <h:commandLink action="#{menuItem.action}">#{menuItem.title}</h:commandLink>
    <br/>

   </ui:repeat>

为了使用ui,必须将其命名空间添加到user.xhtml文件中。

代码语言:javascript
复制
xmlns:ui="http://java.sun.com/jsf/facelets"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33356759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档