java - 数据表中的 Primefaces 命令按钮 - 无法在 bean 中设置属性或无法更新表

标签 java jsf primefaces

我从例子开始:

示例 1

<p:dataTable>
...
<p:column headerText="Actions" style="text-align:center; width:100px;">
    <p:commandLink value="Delete" action="#{bean.delete}"
        update="data">
        <f:setPropertyActionListener target="#{bean.key}" value="#{item.key}" />            
    </p:commandLink>
</p:column>
...
</p:dataTable>

示例 2

<p:dataTable>
...
<p:column headerText="Actions" style="text-align:center; width:100px;">
    <p:commandLink value="Delete" actionListener="#{bean.delete}"
        update="data">
        <f:setPropertyActionListener target="#{bean.key}" value="#{item.key}" />            
    </p:commandLink>
</p:column>
...
</p:dataTable>

在第一种情况下(带有 action 的命令链接),属性 bean.key 设置正确,但删除项目后表不会再次呈现。

在第二种情况下(与 actionListener 的命令链接),未设置属性,并且我收到 NullPointerException。但我在表外有另一个带有 actionListener 的命令链接,它工作正常并更新表。

如何在删除项目后第一个情况下呈现表格或以某种方式解决问题?

最佳答案

尝试添加属性prependId=false到用 id="update" 包装组件的表单标签

<h:form prependId="false">

建议:添加属性process="@this"给您<p:commandLink value="Delete" ...> 在这种情况下,您只提交这一个组件,而不是表单中的所有组件

关于java - 数据表中的 Primefaces 命令按钮 - 无法在 bean 中设置属性或无法更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8367604/

相关文章:

java - 无法解析方法“openFileOutput(java.lang.String,int)”

javascript - Richfaces在richfaces 4.0.0.jar中没有定义嵌套的jsp(struts)和Jsf

JSF EL - 用默认值替换 null

jsf - 只处理其值已被修改的输入字段?

jsf - Primefaces 扩展 11 错误 [...] monacoeditor.EditorOptions 不存在

css - Primefaces 哨兵固定左侧菜单位置

java - 二进制搜索功能不起作用

java - 寻找有关在 Java/Swing 中检查图像观察者的所有位的信息

java - 使用 Spring Cloud Stream 将 RabbitMQ 消费者绑定(bind)到现有队列

javascript - 在 primefaces 问题中重定向