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

时间:2015-01-09 23:02:01

标签: jsf facelets managed-bean uiinclude

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

我已经有一个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...

现在我创建一个继承UserAdmMB的{​​{1}},其他字段。我想重用现有的XHTML,比如使用UserMB

<ui:include>

但是第一个XHTML中已经有<ui:include src="user.xhtml" /> <p:outputLabel value="Address:" /> <h:outputText value="#{userAdmMB.anotherbean.address}" /> (用于另一个接入点)。如何更好地做到这一点?

1 个答案:

答案 0 :(得分:1)

将bean重构为<ui:param>的{​​{1}}。

新的包括:

<ui:include>

客户:

<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>