ManagedBean 继承另一个 MB。如何重用主要 class JSF 作为组件?

ManagedBean inherits another MB. How to reuse the main class JSF as a component?

我的问题有点复杂,但我会举个例子。

我已经有一个 user.xhtml 页面(和一个使用它的 MB),我在其中注册了一个用户

<p:outputLabel value="Name:" /> <h:outputText value="#{userMB.bean.name}" />
<p:outputLabel value="e-mail:" /> <h:outputText value="#{userMB.bean.email}" />
etc...

现在我创建了一个继承 UserMBUserAdmMB,其中包含其他字段。我想重用现有的 XHTML,比如使用 <ui:include>:

<ui:include src="user.xhtml" />
<p:outputLabel value="Address:" />
<h:outputText value="#{userAdmMB.anotherbean.address}" />

但是第一个 XHTML 中已经包含 userMB(将在另一个访问点中使用)。更好的方法是什么?

将 bean 重构为 <ui:include><ui:param>

新的包括:

<p:outputLabel value="Name:" /> <h:outputText value="#{user.name}" />
<p:outputLabel value="Email:" /> <h:outputText value="#{user.email}" />
...

客户:

<ui:include src="user.xhtml">
    <ui:param name="user" value="#{someBean.user}" />
</ui:include>
<ui:include src="user.xhtml">
    <ui:param name="user" value="#{someAdminBean.user}" />
</ui:include>