JSF创建另一个managedBean的实例



我是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,一方面是"EstacionMbReq"与requestScoped注释,另一方面是"EstacionMbSess"与SessionScoped注释。问题是当我点击"Editar"或"Eliminar" commandLinks时,它执行名为"EstacionMbReq"的managedBean的构造函数,而不是我指定的managedBean: "EstacionMbSess".

帮忙吗?可以在同一个视图中使用两个managedbean吗?谢谢你

构造函数EstacionMbSess在每个HTTP用户会话中只执行一次,并且在处理点击请求之前发生。

当您每次从此页面发送请求时,都会创建EstacionMbReq

相关内容

  • 没有找到相关文章

最新更新