JSF2中的自定义组件将输入对其进行修改,请按按钮单击并重新呈现组件



我是JSF(只有1周大)和开发第一个组件的新手。组件是一个表格,该表将集合作为输入并以表格式呈现内容。除此之外,每行末尾还呈现一个"删除"链接。

i创建了"复合"组件(.xhtml)和componentType(带有@facescomponent的Java类)。

我在每行中显示了完整的表渲染,"删除"链接显示。现在尝试使用@facescomponent在我的课程中定义的操作添加。

<a4j:commandLink action="#{cc.removeRow(rowKey)}" value="Remove"/>

在我的组件(Java类)中,我定义了此方法的启动(整数Rowkey)。但是,在单击此"删除"链接时,该操作不会触发。我在组件中也定义了" h:form"。

任何帮助或指针都非常感谢。

编辑:只需查看这个问题如何使用JSF 2.0复合组件实现动态列表?它几乎类似于我的要求。我不确定的一件事是,渲染时的表单操作将是什么,如果我单击组件中的按钮,它将如何调用其自己的组件bean中的方法。

好吧,这是我正在做的错误。

我使用guava"表"集合渲染自定义表。表的初始化发生在" EncodeBegin"中,一次称为一次。因此,当我单击提交时,它试图重新渲染桌子,并且看到Null的所有内容,因此将NPE抛出。

我现在将表的初始化提取到单独的方法和辅助方法,以检索现有表(如果不是null或从属性重新定位)。

它现在起作用。

最新更新