Boa tarde senhores,
Estou com um problema bastante estranho (para um novato, pelo menos)
Imaginem a cena:
1 - Tenho uma tela principal, ontem exibo em abas os formularios todos - este bean ERA ViewScoped.
2 - E um determinado formulário, tenho um selectOneMenu, com um p:ajax disparando um evento em seu respectivo bean, no evento “change”, funcionando perfeitamente.
Porém, me surgiu aqui a “necessidade” (por não saber fazer de outra forma uma outra determinada situação) de que esse meu bean da tela principal se tornasse SessionScoped. A partir deste momento, esse evento p:ajax do outro formulário, passou a não funcionar. Se eu voltar para View, ele funciona…
Consegui explicar certinho?
O bean que mudou de escopo, não é diretamente a view do bean, embora ele “abrigue” o formulario, por ser a tela que abriga todas as outras, conforme o usuário chame as telas…
Alguém já passou por isso?
Abraços
A princípio, não vejo relação entre as coisas. Posta os códigos aí, quem sabe não fica mais claro.
é difícil até escolher o que postar de código, mas vamos lá:
SelectOneMenu:
<p:selectOneMenu id="selectEvento"
value="#{registroEventoBean.loteRegistro.evento}"
style="width: 95%;" converter="simpleIndexConverter"
required="true"
requiredMessage="A informação 'Evento' é obrigatória">
<f:selectItems value="#{registroEventoBean.listaEventos}" />
<p:ajax event="change"
listener="#{registroEventoBean.verificaEvento}"
update="panelItens" />
</p:selectOneMenu>
Evento do Bean:
public void verificaEvento() {
habilitaPanelMp = false;
habilitaPanelPa = false;
if (loteRegistro != null) {
if (loteRegistro.getEvento() != null) {
if (loteRegistro.getEvento().getAcao() == 0) {
habilitaPanelMp = true;
habilitaPanelPa = false;
} else if (loteRegistro.getEvento().getAcao() == 1) {
habilitaPanelMp = false;
habilitaPanelPa = true;
}
if (habilitaPanelMp == true || habilitaPanelPa == true) {
loteRegistroItem = new Lote_Registro_Itens();
}
}
}
}
Obrigado pela atenção… se quiser ver mais alguma coisa, só falar…