我有这段代码:
<composite:interface componentType="nestedGridCellEditor">
<composite:attribute name="componentName" required="false" shortDescription="Name of the attribute to display in the id"/>
<composite:attribute name="action" required="false" targets="#{cc.attrs.componentName}button" shortDescription="A method expression or a string outcome to process when command is executed"/>
</composite:interface>
<composite:implementation>
<span id="#{cc.clientId}" style="display: flex;">
<p:commandButton id="#{cc.attrs.componentName}button"/>
</composite:implementation>
</span>
我以这种方式使用它(我使用它几次,使用不同的componentName):
<sm:nestedGridCellEditor id="DateNGCE" componentName="Foo2101"
action="#{contractTermsBudgetController.updateRow('Date', budget)}"/>
我想要它做的是在组件的id中使用componentName,并将它放在目标中。
现在它给我一个关于目标和行动方法的错误。
(即 - "Unable to re-target MethodExpression as inner component referenced by target id 'button' cannot be found"
)
我该怎么做?
这样做的目的是因为我在几个表中使用了这个复合,我希望通过其表的ID来识别每个按钮,该ID应包括表名而不是clientId。 这就是我需要通过componentName传递名称的原因。