1

我在基于JSF 2的应用程序中遇到了一个困难。
我想使用从一个视图到另一个视图的导航以及通过rich:menuItem传递的值,

  1. 所以我尝试使用h:outputLink并且它也可以导航,但是在导航以显示所需的结果集之前没有传递我想要传递的值。
  2. 对于a4j:commandLink也是如此。
  3. 然后我使用a4J:commandButton本身通过 action 和 actionListener 执行此操作。在这里, Action将导航到下一个视图,Listener会将值传递给所需的类,并且“listener 将在操作之前被调用”。执行此操作的代码是....

    <rich:menuItem ajaxSingle="true">
         <a4j:commandButton value="Show Particulars" action="details" event="onclick" actionListener="#{payeeParticularsController.showParticulars}"/>
    </rich:menuItem>        
    

但是这个按钮使用起来真的很尴尬。
因此,任何人都可以通过使用 outputLink、commandLink、rich:menuItem(最好这样做)或任何其他用户友好的方式来帮助我做到这一点。

4

2 回答 2

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>

豆子是

public String showParticulars() 
{
      ..
return "/logout.xhtml";
}

submitMode="ajax" 将帮助您使其作为 commandLink 工作,并且 Bean 的 show details() 将导航到另一个视图

于 2012-05-11T06:41:55.867 回答
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>

而且,我建议在菜单中使用属性immediate="true"

参考:http ://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_menuItem.html

于 2013-03-14T11:58:39.290 回答