问题:如何创建一个动态的“p:菜单”,该动态“p:菜单”等价于下面的工作静态"p:menu“(其菜单项由 "actionListener”和"action“属性定义)
(.xhtml)
-
-
-
<p:menu id="menustatic" >
<p:menuitem id="menuitemstatic0" value="operationStatic0" actionListener="#{testController.staticMenuActionListener}" action="#{breadCrumb.navigate('page0')}" />
<p:menuitem id="menuitemstatic1" value="operationStatic1" actionListener="#{testController.staticMenuActionListener}" action="#{breadCrumb.navigate('page1')}" />
</p:menu>
-
-
-注意:我知道我可以使用DefaultMenuItem的"setCommand“添加"ActionListener”属性、或、"Action“属性.
FWIW,这就是我现在添加一个或另一个属性的方式.
(.xhtml)
-
-
-
<p:menu id="menudynamic" model="#{menuController.dynamicMenuModel}" />
-
-
-
(.java)
-
-
-
dynamicMenuModel = new DynamicMenuModel();
//dynamicMenuModel.generateUniqueIds();
DefaultMenuItem item = new DefaultMenuItem();
item.setId("menuitemdynamic0");
item.setValue("operationDynamic0");
item.setCommand("#{testController.dynamicMenuActionListener}");
//item.setCommand("#{breadCrumb.navigate('page0')}");
dynamicMenuModel.addElement(item);
item = new DefaultMenuItem();
item.setId("menuitemdynamic1");
item.setValue("operationDynamic1");
//item.setCommand("#{testController.dynamicMenuActionListener}");
item.setCommand("#{breadCrumb.navigate('page1')}");
dynamicMenuModel.addElement(item);
-
-
-ActionListener方法看起来像这样..。
public void staticMenuActionListener(ActionEvent e)
{
LOG.info("___________________staticMenuActionListener(ActionEvent e)___________________entering....(static)....e.getComponent().getClientId()=" + e.getComponent().getClientId());
}
public void dynamicMenuActionListener(ActionEvent e)
{
MenuActionEvent me = (MenuActionEvent) e;
LOG.info("___________________dynamicMenuActionListener(ActionEvent e)___________________entering....(dynamic)....me.getMenuItem().getClientId()=" + me.getMenuItem().getClientId());
}下面是我用来构建这个测试的一些相关依赖项..。
<dependency>
<groupId>org.primefaces.themes</groupId>
<artifactId>all-themes</artifactId>
<version>1.0.9</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>5.0</version>
</dependency>
<dependency>
<groupId>org.primefaces.extensions</groupId>
<artifactId>primefaces-extensions</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.28</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.28</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
</dependency>用JDK1.6.x (weblogic12c)编译
谢谢你帮忙!
发布于 2014-07-24 08:00:57
对于导航,可以使用item.setOutcome或item.setUrl方法。
关于操作,如果需要在ajax或非ajax命令中传递参数,请使用setParam(key,value)方法。
https://stackoverflow.com/questions/24897565
复制相似问题