我有以下由 CDI Flow Scope 管理的 bean
@Named
@FlowScoped(value="flow-grupo-classe")
public class GrupoBean extends BeanUI implements Serializable { ... }
@Named
@FlowScoped(value="flow-grupo-classe")
public class GrupoClasseBean extends BeanUI implements Serializable { ... }
我有一个 primefaces 标签页 (grupo_classe.xhtml) 来管理“grupo”和“classe”的信息。
<ui:composition>
<ui:define>
<h:form>
<p:tabView id="tabView">
<p:tab title="Grupo" id="tGrupo" titleStyle="width: 19%" >
<f:subview id="svGrupo"><ui:include src="grupo.xhtml"></ui:include></f:subview>
</p:tab>
<p:tab title="Classes" id="tClasse" titleStyle="width: 19%">
<f:subview id="svClasse"><ui:include src="classe.xhtml"></ui:include></f:subview>
</p:tab>
</p:tabView> ...
在作文页面内有一个 primefaces 数据表。grupo.xhtml
<ui:composition>
<h:form>
<p:datatable>
<p:ajax event="rowSelect" listener="#{grupoClasseBean.onRowSelect}"/> ...
和classe.xhtml
<ui:composition>
<h:form>
<p:datatable> ...
我的问题是:当我使用 xhtml 包含/组合结构时,我的 managedbean 不起作用。
如果我删除此包含/组合并将 primefaces 数据表插入 grupo_classe.xhtml 中,则可以识别托管 bean。
我是否需要为 CDI Flow Scope 做一些额外的配置来识别这个 xhtml 包含/组合结构?
在 faces-config.xml 中我的 CDI 流范围配置下方
<flow-definition id="flow-grupo-classe">
<start-node>inicio</start-node>
<view id="inicio">
<vdl-document>/flow-grupo-classe/grupo_classe.xhtml</vdl-document>
</view>
<flow-return id="exit">
<from-outcome>#{grupoBean.exit}</from-outcome>
</flow-return>
</flow-definition>