p:dataScroller 内 p:commandButton 的操作仅在第一个按钮上调用
Action of p:commandButton inside p:dataScroller only invoked on first button
在 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"
!
即可使用
刚刚自己找到了解决办法。我必须将 process="@form"
添加到我的按钮。现在可以正常使用了!
在 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"
!
刚刚自己找到了解决办法。我必须将 process="@form"
添加到我的按钮。现在可以正常使用了!