JSF中的组合页面内的命令按钮

时间:2013-02-19 11:18:03

标签: jsf primefaces uiinclude

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

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

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

EL 2.2方法参数(因此,#{bean.method()}而不是#{bean.method})可用于传递可在commandButton的actionListener属性中使用的方法签名。以下是传递ManagedBean属性以及传递方法签名的示例:

主页

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

<强> jointeam.xhtml

...

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

...

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

您可以看到这在代码重用方面有多强大,并且对于许多实例而言,它比复合组件更简洁,更易于使用。