使用<p:commandbutton> </p:commandbutton>重定向

时间:2015-04-15 10:13:35

标签: jsf-2 primefaces

以下行应该保存新项目并重定向到另一个页面。到目前为止,它正确保存,但它没有重定向。没有错误或警告。

<p:commandButton id="savebutton" ajax="false" value="#{msg['addCategory.save']}" actionListener="#{addCategoryController.doSave()}" />

代码背后:

 public String doSave(){       
    categoryAddEvent.fire(categoryProducer.getSelectedCategory());
    return Pages.LIST_CATEGORIES;
}

正如我所说,第一行正确执行,第二行似乎没有做任何事情。我有什么想法可能做错了吗?

1 个答案:

答案 0 :(得分:6)

您可以通过两种方式实现:

  • 导航

调用一个动作,将commandButton组件设置为ajax false,并返回一个返回String的bean方法(就像你已经拥有的那样)。

xhtml页面:

<p:commandButton id="savebutton" ajax="false" value="#{msg['addCategory.save']}" action="#{addCategoryController.doSave()}" />
  • 重定向

调用actionListener,将commandButton组件设置为ajax true,bean方法不返回值,而是自行重定向到所需页面。

xhtml页面:

<p:commandButton id="savebutton" ajax="true" value="#{msg['addCategory.save']}" actionListener="#{addCategoryController.doSave()}" />

java bean:

public void doSave(){       
    categoryAddEvent.fire(categoryProducer.getSelectedCategory());
    FacesContext.getCurrentInstance().getExternalContext().redirect(Pages.LIST_CATEGORIES);
}