我在基于 JSF 2 的应用程序中遇到了一个困难 我想使用从一个视图到另一个视图的导航以及通过 rich:menuItem 的值,
然后我使用 a4J:commandButton 本身通过使用action和actionListener来执行此操作。 这里 Action 将导航到下一个视图, Listener 会将值传递给所需的类,并且“在操作之前将调用侦听器”。这样做的代码是....
<rich:menuItem ajaxSingle="true">
<a4j:commandButton value="Show Particulars" action="details" event="onclick" actionListener="#{payeeParticularsController.showParticulars}"/>
</rich:menuItem>
但是这个按钮看起来很难使用 所以任何人都可以通过使用outputLink,commandLink,rich:menuItem(最好做)或任何其他用户友好的方式帮助我做到这一点。
答案 0 :(得分:2)
尝试这种方式,如果它有帮助
<h:commandLink id="btn" value="Show Particulars" action="{payeeParticularsController.showParticulars}">
<f:param name="menuItem" value="#{}" />
</h:commandLink>
命令链接将菜单项作为参数
更新: 在豆中
public String showParticulars(){
// get the f:parama value using facesContect
// use it as required
...
return "\newView.xhtml";
}
更新2:
如果上述方法不起作用,请尝试这种方式
<rich:menuItem submitMode="ajax" value="Show Particulars" action="#{Bean.showParticulars}" >
</rich:menuItem>
和Bean将是
public String showParticulars()
{
..
return "/logout.xhtml";
}
其中submitMode =“ajax”将帮助你使它作为commandLink工作,而Bean的show particulars()将导航到另一个视图
答案 1 :(得分:1)
试试这个。它对我有用。
<rich:menuItem submitMode="none">
<h:commandLink value="Show Particulars" action="details" actionListener="#{payeeParticularsController.showParticulars}"/>
</rich:menuItem>
或者如果你有ajax
<rich:menuItem submitMode="none">
<a4j:commandLink value="Show Particulars" reRender="body" action="details" actionListener="#{payeeParticularsController.showParticulars}"/>
</rich:menuItem>
而且,我建议在menues中使用属性 immediate =“true”。
参考:http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_menuItem.html