带参数的编程菜单?
使用primefaces 2.2.1。我们有 MenuBean 类:
public class MenuBean {
private MenuModel model;
public MenuBean() {
model = new DefaultMenuModel();
//First submenu
Submenu submenu = new Submenu();
submenu.setLabel("Dynamic Submenu 1");
MenuItem item = new MenuItem();
item.setValue("Dynamic Menuitem 1.1");
item.setUrl("#");
submenu.getChildren().add(item);
model.addSubmenu(submenu);
}
public MenuModel getModel() {
return model;
}
}
这是视图:
<h3>Programmatic Menu </h3>
<p:menu model="#{menuBean.model}"/>
我想使用参数调用控制器方法,例如:
<p:menuitem value="Menu 01" action="#{myController.search()}">
<f:param value="1" name="mypara"/>
</p:menuitem>
我尝试: item.addActionListener("#{myController.search()}");但这行不通。我可以在 MenuBean 类中做什么?
Using primefaces 2.2.1. We have MenuBean class :
public class MenuBean {
private MenuModel model;
public MenuBean() {
model = new DefaultMenuModel();
//First submenu
Submenu submenu = new Submenu();
submenu.setLabel("Dynamic Submenu 1");
MenuItem item = new MenuItem();
item.setValue("Dynamic Menuitem 1.1");
item.setUrl("#");
submenu.getChildren().add(item);
model.addSubmenu(submenu);
}
public MenuModel getModel() {
return model;
}
}
This is view :
<h3>Programmatic Menu </h3>
<p:menu model="#{menuBean.model}"/>
I want to call Controller method with parameter, something like :
<p:menuitem value="Menu 01" action="#{myController.search()}">
<f:param value="1" name="mypara"/>
</p:menuitem>
I try : item.addActionListener("#{myController.search()}"); but it's not work. What can i do in MenuBean class ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于当前的 PrimeFaces 版本 (v6.x),解决方案可能如下所示:
MenuBean:
MyController:
With current PrimeFaces versions (v6.x) a solution could look like this:
MenuBean:
MyController:
你用的是Spring吗?
因为它的集成使用 JSF 1.2,如果您想将参数发送到控制器,您必须采取一种解决方法。
我遇到了同样的问题,我解决了以下几行:
在您的情况下,您可以尝试将属性添加到 MenuModel 中。像这样的东西:
Are you using Spring?
Because the integration of that use JSF 1.2 and if you want to send a paramter to a controller you have to made a kind of workaround.
I had the same problem and I resolve as the following lines:
in your case you could try to add a property into your MenuModel. Something like that: