java - 如何将与提交的表单对应的项目ID传递给action/actionlistener方法?

标签 java jsf

我在网页上有多个表单,用于提交与页面上列出的每个项目相对应的响应。我尝试通过 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/

相关文章:

java - AWS Web 应用程序部署 .ebextensions 配置的超时问题不起作用

java - 如何启用Zabbix tomcat每秒接收字节数项?

java - 字符串替换使用巨大的堆空间

jsf - 为什么 FacesServlet 不能有/*. 的 url-pattern?

java - Richfaces:带有 ContextMenu 的链接式文本

java - 无效状态,ResultSet 对象关闭

java - 在符合 GC 条件的 Java For Each 循环中创建的字符串

java - JSF 真的准备好迎接高性能社交网络项目了吗?

java - Primefaces:dataTable 内的 inputMask

ajax - 如何将参数值传递给a4j :jsFunction