1

我目前有一个导航菜单:

...
<p:menuitem id="id1" value="Page 1" action="home.xhtml?faces-redirect=true" actionListener="#{homeBean.someMethod(1)}"/>
<p:menuitem id="id2" value="Page 2" action="other.xhtml?faces-redirect=true" actionListener="#{otherBean.someMethod(1)}"/>

现在我想摆脱这些重定向。所以我尝试了属性 url 而不是 action,但是 actionListener 不再被调用。

在这种情况下如何调用监听器

<p:menuitem id="id1" value="Page 1" url="home.jsf">
  ... here (or maybe somewhere else) should go the call to my listener ...
</p:menuitem>

强尼

4

1 回答 1

3

p:menuItem支持 POST 和 GET 。选择其中哪一个取决于url属性的存在。来自PF 文档的引用:

这由 url 属性决定,如果存在 menuitem 则执行 GET 请求,如果不存在则发布父表单。

如果要在服务器端调用操作方法,则需要执行 POST。如果您不想要重定向,则需要String从您的操作方法返回导航目标:

public String someAction() {
  ...
  return "home";
} 

这将导航到home.xhtml操作方法是否已完成。

您可以从菜单中调用此操作方法:

<p:menuitem id="id1" value="Page 1" action="#{someBean.someAction}"/>
于 2012-06-11T07:08:09.793 回答