【问题标题】:Action of p:commandButton inside p:dataScroller only invoked on first button [duplicate]p:dataScroller 中 p:commandButton 的操作仅在第一个按钮上调用[重复]
【发布时间】:2015-11-03 15:24:43
【问题描述】:

在 p:dataScroller 中,我得到了一个带有 inputTextarea 和 commandButton 的表单:

<h:form>
    <p:inputTextarea rows="4" cols="15" autoResize="false" value="#{feedBean.comment}" />
    <br />
    <p:commandButton value="Kommentar posten" action="#{feedBean.commentStatus(entry.id)}" />                                               
</h:form>

当我单击第一个按钮时,一切正常。当我尝试单击第二个或第三个按钮时,不会调用该方法。我也尝试使用 f:param 但它也不起作用。

这是方法commentStatus:

public String commentStatus(String id) {
    /* Irrelevant code */

    System.out.println("###entryId: "+id);

    /* Irrelevant code */

    return NavigationBean.securedFeedLink;
}

编辑:我自己找到了解决方案。我必须将process="@form" 添加到我的按钮。现在它工作正常!

编辑 2: 我的表单嵌套在另一个表单中,这就是我需要 process="@form" 的原因 我更新了我的代码并删除了另一种形式。现在不用添加process="@form"就可以工作了!

【问题讨论】:

  • 您是否尝试过在命令按钮上使用actionListener 而不是action
  • 问题表明 bean 不是视图范围和/或 JSF 视图状态丢失。你能验证并确认两者吗?
  • @JorgeCampos:嗯?供阅读:stackoverflow.com/q/3909267 或者,如果您实际上从未使用过 JSF,而只是公平地尝试在评论中重新发布第一个 Google 结果,请不要这样做,它只会用错误信息污染互联网。
  • 如果第一次点击是在第二个按钮上怎么办?然后那个工作,然后单击按钮 1 失败?或者换句话说,是和按钮数量有关还是和同一个按钮的点击次数有关?
  • @BalusC:是的,它不是 viewscoped,它是 sessionscoped。

标签: jsf primefaces commandbutton datascroller


【解决方案1】:

我自己找到了解决方案。我必须将process="@form" 添加到我的按钮。现在它工作正常!

【讨论】:

  • 这很奇怪,因为这已经是默认值了。还是您实际上有一个不同的,为了简洁而在问题中省略了它,而没有实际测试生成的代码?
  • @BalusC:没有省略。我的代码中从未有过。只需在互联网上阅读一些内容并将其添加到我的按钮中。我知道这是默认值,这就是为什么我想知道它为什么起作用。
  • 好的。如果你删除它,它会再次失败吗?只是为了排除脏构建的原因。
  • 如果我删除它,它会再次失败。刚试了又试。
  • 您在嵌套表单吗?
猜你喜欢
  • 2013-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-26
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 2018-11-27
相关资源
最近更新 更多