Olá!
Tenho um managed bean anotado com @SessionScoped.
Num arquivo .xhtml que utiliza esse bean, coloquei botões que ao serem clicados mudam o estado de uma ordem de serviço.
Ao clicar no botão o bean está sendo recriado, perdendo os objetos carregados.
O que pode estar acontecendo?
Segue abaixo os códigos para quem puder ajudar.
OrdemServicoBean@ManagedBean(name = "ordemServicoBean")
@SessionScoped
public class OrdemServicoBean {
private OrdemServico ordemservico = new OrdemServico();
private Integer estado = new Integer(0);
public OrdemServico getOrdemservico() {
return ordemservico;
}
public void setOrdemservico(OrdemServico ordemservico) {
this.ordemservico = ordemservico;
}
public void finalizarParcialmente() {
this.ordemservico.setEstadoAtual(Estado.PARCIALMENTE_COMPLETO);
}
public void finalizarTotal() {
this.ordemservico.setEstadoAtual(Estado.COMPLETO);
}
}
<h:form id="controlarordem">
<p:messages showDetail="true" autoUpdate="true" showSummary="false" />
<h:inputHidden value="#{ordemServicoBean.ordemservico.id}" />
<p:fieldset id="fs" legend="TUDO" toggleable="true">
<div class="campo-grupo">
<h:outputLabel value="Nº OS" />
<h:outputText name="nos"
value="#{ordemServicoBean.ordemservico.numero}/#{ordemServicoBean.ordemservico.ano}" />
</div>
<div class="campo-grupo">
<h:outputLabel value="Escola" />
<h:outputText name="escola"
value="#{ordemServicoBean.ordemservico.escola.nome}" />
</div>
<div class="campo-grupo">
<h:outputLabel value="Data" />
<h:outputText name="data"
value="#{ordemServicoBean.ordemservico.data}" />
</div>
<div style="clear: both;"></div>
<div class="campo-grupo">
<p:commandButton value="Parc. Fin." onclick="confirmaParcial.show()"
rendered="#{ordemServicoBean.estado == 0 }" />
<p:confirmDialog message="Confirma a finalização parcial?"
header="ATENÇÃO" severity="alert" widgetVar="confirmaParcial">
<p:commandButton value="Sim" update="fs"
oncomplete="confirmaParcial.hide()"
action="#{ordemServicoBean.finalizarParcialmente}" />
<p:commandButton value="Não" onclick="confirmaParcial.hide()"
type="button" />
</p:confirmDialog>
</div>
</p:fieldset>
</h:form>
