我正在寻找一个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的引用,所以我使用主键