当声明actionListener =“#{bean.method}”时<h:commandbutton>不导航</h:commandbutton>

时间:2013-11-20 03:16:49

标签: jsf

我需要点击按钮从一个页面导航到另一个页面。如果我这样做的话,它会起作用

<h:commandButton value="Search" action="pageTwo.xhtml" />

但我需要做其他事情,而不仅仅是导航。当我尝试使用函数

<h:commandButton value="Search" actionListener="#{myLittleBean.doForward}" />


public String doForward() {
    // ...
    return "pageTwo";
}

它只是重新加载pageOne。我的错误在哪里?

2 个答案:

答案 0 :(得分:3)

您的错误是将动作方法引用为动作侦听器而不是实际动作。动作侦听器无意执行业务操作和执行导航。动作监听器旨在准备实际操作所需的一些条件,例如设置属性。

如果您只是修正了错误的属性,

<h:commandButton value="Search" action="#{myLittleBean.doForward}" />
然后一切都会好起来的。

另见:

答案 1 :(得分:-1)

我认为这是你的ManagedBean的问题 你也可以尝试这个:

**public String doForward() {
// ...
return ("pageTwo.xhtml");
}**

如果它不起作用,则使用显式ManagedBean