我是新手使用jsf框架,我说中级英语,所以我希望你能理解我的问题。我有这种情况:
这是我的文件abmEstaciones.xhtml中的内容
<ui:define name="contenido">
<div class="box">
<div class="box-header">
<h3 class="box-title">Lista de Estaciones</h3>
</div>
<!-- /.box-header -->
<div style="margin-top: 3%; margin-bottom: 2%;">
<h:message for="Alta" style="color:green; font-weight: bold;" />
<h:form id="Alta">
<h:commandLink styleClass="btn btn-success"
action="#{estacionMbReq.visualizarAltaEstacion}">
<i class="fa fa-plus-circle"></i>
<span class="menu-title">Agregar</span>
</h:commandLink>
</h:form>
</div>
<div class="box-body table-responsive">
<h:outputText value="No hay estaciones" style="color:red; font-weight: bold;" rendered="#{empty estacionMbReq.listaEstaciones}" />
<h:dataTable id="example1" rendered="#{not empty estacionMbReq.listaEstaciones}" value="#{estacionMbReq.listaEstaciones}"
var="estacion" styleClass="table table-bordered table-striped">
<h:column>
<f:facet name="header">Nombre</f:facet>
#{estacion.nombre}
</h:column>
<h:column>
<f:facet name="header">Total Estacionamientos</f:facet>
#{estacion.totalEstacionamientos}
</h:column>
<h:column>
<f:facet name="header">Cant. Estacionamientos libres</f:facet>
#{estacion.cantEstacionamientosLibres}
</h:column>
<h:column>
<f:facet name="header">Estado</f:facet>
#{estacion.estado}
</h:column>
<h:column>
<f:facet name="header">Opciones</f:facet>
<h:form id="formOpcTabla" name="formOpcTabla">
<h:commandLink
action="#{estacionMbSess.visualizarModificarEstacion}"
styleClass="btn btn-primary">
<i class="fa fa-edit"></i> Editar
<f:param name="idEstacion" value="#{estacion.idEstacion}" />
</h:commandLink>
<h:commandLink styleClass="btn btn-danger"
action="#{estacionMbSess.borradoLogico}">
<i class="fa fa-eraser"></i> Eliminar
<f:param name="idEstacion" value="#{estacion.idEstacion}" />
</h:commandLink>
</h:form>
</h:column>
</h:dataTable>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</ui:define>
这是faces-config.xml
中的导航规则 <navigation-rule>
<from-view-id>/abmEstaciones.xhtml</from-view-id>
<navigation-case>
<from-action>#{estacionMbReq.visualizarAltaEstacion}</from-action>
<from-outcome>successVisualizarAltaEstacion</from-outcome>
<to-view-id>/altaEstacion.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{estacionMbSess.visualizarModificarEstacion}</from-action>
<from-outcome>successVisualizarModificarEstacion</from-outcome>
<to-view-id>/modificarEstacion.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{estacionMbSess.borradoLogico}</from-action>
<from-outcome>listarEstaciones</from-outcome>
<to-view-id>/abmEstaciones.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
我正在尝试在视图中使用两个托管bean,一方面使用requestScoped注释“EstacionMbReq”,另一方面使用SessionScoped注释使用“EstacionMbSess”。问题是,当我单击“Editar”或“Eliminar”commandLinks时,它会执行名为“EstacionMbReq”的managedBean的构造函数,而不是我指定的managedBean:“EstacionMbSess”。
有任何帮助吗?可以在同一视图中使用两个managedBeans吗?谢谢
答案 0 :(得分:0)
构造函数EstacionMbSess
每个HTTP用户会话只执行一次,并且在处理点击请求之前发生。每次从此页面发送请求时都会创建EstacionMbReq
。