【发布时间】: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