JSF - Request y Session

 
Vista:

Request y Session

Publicado por Pedro Ramírez (1 intervención) el 21/04/2009 10:41:18
Buenas a todos,

Estoy haciendo un formulario de alta de usuarios, el caso es que he decidido combinar beans de request y session, para modularizar funciones y guardar en el session todos los datos que voy a necesitar luego.

El caso es que tengo este xhtml:

...
<rich:panel header="#{msg.headerUserForm}" id="datosRolesUsuario">
<h:panelGrid columns="2">
<h:outputLabel for="role" value="#{msg.rol}:" />
<c:choose>
<c:when test="#{altaAREDBeanSession.onlyOneRole}">
<h:outputText value="#{altaAREDCenterBeanRequest.rolSelecMessage}" />
</c:when>
<c:otherwise>
<h:selectOneMenu id="role"
value="#{altaAREDBeanSession.roleSelec}">
<a4j:support event="onchange"
actionListener="#{altaAREDCenterBeanRequest.cargarAgrupamientos}"
reRender="groupList,centerList,nextcenter" ajaxSingle="true">
</a4j:support>
<f:selectItems value="#{altaAREDCenterBeanRequest.rolList}" />
</h:selectOneMenu>
</c:otherwise>
</c:choose>

<h:outputLabel for="centerList" value="#{msg.center}:" />

<h:selectOneMenu id="centerList"
value="#{altaAREDBeanSession.centroSelec}"
disabled="#{altaAREDCenterBeanRequest.disabledCentro}">
<a4j:support event="onchange"
actionListener="#{altaAREDCenterBeanRequest.changeNextButton}"
reRender="nextcenter" ajaxSingle="true">
</a4j:support>
<f:selectItems value="#{altaAREDCenterBeanRequest.centerList}" />
</h:selectOneMenu>
</h:panelGrid>
...

La cosa es que en el primer caso, me lo hace bien, cuando selecciono un rol de la caja de arriba, primero guarda en el bean de session el "roleSelec" y luego salta el evento. Esto hace que se habilite la caja de abajo.

Al seleccionar un elemento de la segunda caja, primero salta el evento y nunca llega a guardar en el bean de session, con lo que el método que salta, al necesitar el valor previamente seleccionado y no poder obtenerlo de ninguna parte, lanza la excepción.

¿Qué parte de JSF estoy violando? Alguna explicación ha de tener esto.

Muchísimas gracias por adelantado.
Un saludo,

Pedro Ramírez.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder