就像 ui:include 可以通过调用 src 来实现动态一样
<h:form id="form">
<p:outputPanel id="title" value="This is the main xthtml page">
<p:dialog header="Modal Dialog" modal="true">
<ui:include src="#{mainBacking.compositePage}">
<ui:param name="action" value="actionOne" />
</ui:include>
</p:dialog>
</form>
我想通过源调用复合组件。ui:include 中的一个问题是它不能将方法作为参数传递,而复合组件可以。如何创建/调用基于 src 的动态复合组件?当前的方法是我需要在同一个 xthml 文件中指定所有复合组件(当然,这只是最小的可重现代码,真正的要长得多,参数更多);
<h:form id="form">
<p:outputPanel id="title" value="This is the main xthtml page">
<p:dialog header="Modal Dialog" modal="true">
<util:user-composite id="userModaL"
bean="#{userBean}"></util:user-composite>
<util:company-composite id="companyModaL"
bean="#{companyBean}"></util:company-composite>
<util:education-composite id="educationModaL"
bean="#{eduBean}"></util:education-composite>
</p:dialog>
</form>
但这意味着,在页面加载时,所有的 bean 都将被调用和初始化。我不希望这样,因为系统在页面加载时会很重。我希望它根据需要调用组合,然后像 ui:include 一样初始化并显示它。我如何使用复合组件来做到这一点,这可能吗?如果没有,还有其他解决方案吗?