PrimeFaces 组件,用于类似 Facebook 的"Notifications"(右上角的小消息)



我正在寻找一个PrimeFaces 4.0组件,通过点击地球符号,可以像Facebook一样在右上角提供小消息。

知道吗?

您可以根据自己的需要调整Primefaces通知栏,但老实说,这对我来说就像是这个著名的"自己动手"组件的工作。

事实上,似乎真的没有现成的组件。我正在试验动态菜单,它似乎提供了正确的功能。但我目前正在努力让它尽可能地可爱。。。这当然是真正的挑战。

在facelet中,它只不过是

          <p:menu model="#{nachrichtTeaserController.unreadMenu}"/>

控制器看起来很像

  ...
  private List<Nachricht> unread;
  private MenuModel unreadMenu;
  ...
  public void initUnread() {
    unread = nachrichtFacade.findAllUnread(
            personLoginController.getCurrentUser().getMandant(),
            personLoginController.getCurrentUser());
    unreadMenu = new DefaultMenuModel();
    Integer menuItemId = 1;
    for (Nachricht nachricht : unread) {
      menuItemId++;
      DefaultMenuItem menuItem = new DefaultMenuItem(nachricht.getTeaserText());
      menuItem.setId(menuItemId.toString());
      String nachrichtIdString = nachricht.getId().toString();
      menuItem.setCommand("#{nachrichtTeaserController.show('" + nachrichtIdString + "')}");
      //menuItem.setCommand(String.format("#{nachrichtTeaserController.show('%d')}",unread.indexOf(n)));
      unreadMenu.addElement(menuItem);
    }
}
...
public String show(String nachrichtIdString) {
  Long nachrichtId = Long.valueOf(nachrichtIdString);
  Nachricht nachricht = nachrichtFacade.find(nachrichtId);
  return show(nachricht);
}

两点:

  • 使用menuItem.setId(menuItemId.toString())很重要;否则,您将在PrimeFaces
  • 请考虑如何进行"行选择"-我的意思是:这很容易调用show(),但需要在中获取一些信息show()显示单击的MenuItem。不幸的是,不能传递对nachricht的引用,所以我使用主键

相关内容

  • 没有找到相关文章

最新更新