单击图像时显示菜单

时间:2014-06-25 09:55:59

标签: jsf primefaces menu menuitem

我想以编程方式创建一个primefaces菜单组件,这里是xhtml标签:

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

这里是关联的spring组件:

@Component
@Scope("session")
@Qualifier("notificationMenu")
public class NotificationMenu {

    @Autowired
    NotificationService notificationService;

    private MenuModel model;

    @PostConstruct
    public void createMenuModel() {

        List<Notification> listNotifs = notificationService.getAllUnreadNotifsForUser(LoginBean.getConnectedUser());

        model = new DefaultMenuModel();

        DefaultSubMenu subMenu = new DefaultSubMenu();

        for (Notification notification : listNotifs) {

            DefaultMenuItem item = new DefaultMenuItem();
            item.setValue(notification.getTypenotification().getTypenotif());
            item.setUrl("/user/index.xhtml");

            subMenu.addElement(item);
        }

        model.addElement(subMenu);
    }

    public MenuModel getModel() {
        return model;
    }
}

我想以编程方式将此菜单与图形图像(如通知图像)相关联,这样当用户点击图像时,会显示菜单......是否可以?


编辑: 我希望菜单在> 图像下显示在模糊上消失(在图像外部点击)。

1 个答案:

答案 0 :(得分:1)

叠加菜单

通过将overlay选项设置为true并定义触发器来显示动态菜单 菜单。页面上菜单的位置将相对于触发器,并由myat选项定义 结合四个值:

那说:

<p:menu overlay="true" trigger="img"
        my="left top"
        at="bottom left"
        model="#{notificationMenu.model}" />
<p:graphicImage id="img" />