我正在尝试构建一个复合 JSF 组件,但在调用方法时遇到了一些麻烦。我的组件在 a 中有一些输入,并且一个添加按钮负责添加更多对象,用于提供重复的列表。我希望该按钮根据负责它所负责的页面的托管 Bean 调用不同的方法(因此它应该是每个 xhtml 中设置的变量)。但是每次我按下按钮时,我都会收到异常消息:
“com.test.TestMB”类没有“addAction”属性。
这是我的组件:
<composite:interface>
<composite:attribute name="id" required="false" />
<composite:attribute name="value" required="true" />
<composite:attribute name="addAction" required="true" />
</composite:interface>
<composite:implementation>
<ui:repeat value="#{cc.attrs.value}" >
<!-- some inputs and other components -->
</ui:repeat>
<p:commandButton actionListener="#{cc.attrs.addAction}" />
</composite>
这是我的实现:
<cc:compositecomp id="component"
value="#{testMB.list}"
addAction="#{pessoaJuridicaMB.addToListMethod}" />
我的 TestMB 类不仅包含该方法,而且如果我将按钮更改为:
<p:commandButton actionListener="#{testMB.addToListMethod}" />
addToListMethod 非常简单:
public void addToListMethod() {
list.add(model); }
关于什么是错误的任何想法,我该如何解决?