我遇到的问题与user1598186在他的问题中所述:p:commandButton doesn't call bean's method in an <ui:include> page
但是,没有给出任何解决方案(他已完全删除了<ui:include>
个标签,而是使用了变量)
当我在commandButton中调用它时,是否有任何方法可以使用<ui:include>
并仍然执行我的支持bean的方法。
非常感谢任何帮助。
答案 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}" />
您可以看到这在代码重用方面有多强大,并且对于许多实例而言,它比复合组件更简洁,更易于使用。