我在网页上有多个表单,用于提交与页面上列出的每个项目相对应的响应。我尝试通过 actionListener
方法本身传递与提交的表单相对应的项目 ID,但这实际上导致传递参数的“当时”值,而不是“ currentItem.id
的 >current' 值。
<h:form>
...
<p:commandButton actionListener="#{itemController.addUserComment(currentItem.id)}" value="Add" />
</h:form>
<h:form>
...
</h:form>
如何将 currentItem.id
的当前值传递给托管 bean?
最佳答案
如果我理解正确的话,您想在请求显示表单期间传递 ID,而不是在请求处理表单提交期间传递 ID?
在这种情况下,请使用 <f:param>
.
<p:commandButton actionListener="#{itemController.addUserComment}" value="Add">
<f:param name="id" value="#{currentItem.id}" />
</p:commandButton>
您可以通过 @ManagedProperty
获取或<f:viewParam>
.
另请参阅:
<小时/>与具体问题无关,但我想知道为什么 #{currentItem.id}
就这样的变化。这表明您正在加载 #{currentItem}
的源代码在 getter 方法中而不是在(后)构造函数或操作(监听器)方法中。
关于java - 如何将与提交的表单对应的项目ID传递给action/actionlistener方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7951963/