2

我遇到了与 user1598186 在他的问题中所说的相同的问题:p:commandButton doesn't call bean's method in an <ui:include> page

但是,没有给出解决方案(他完全删除<ui:include>了标签并使用了变量)

<ui:include>当我在 commandButton 中调用它时,是否有任何使用方法并且仍然执行我的支持 bean 的方法。

任何帮助都感激不尽。

4

1 回答 1

3

EL 2.2 方法参数(所以,#{bean.method()}而不是#{bean.method})可用于传递可用于命令按钮actionListener属性的方法签名。以下是传递 ManagedBean 属性以及传递方法签名的示例:

主页

<ui:include src="/jointeam.xhtml">
  <ui:param name="propertyValue" value="#{managedBean.property1} />
  <ui:param name="method" value="#{managedBean.performAction()}" />
</ui:include>

加入团队.xhtml

...

<h:inputText value="#{propertyValue}" />

...

<p:commandButton value="Submit" actionListener="#{method}" />

您可以看到这在代码重用方面有多么强大,并且在许多情况下,它比复合组件更简洁且更易于使用。

于 2013-02-19T12:41:38.943 回答