Session Bean sendo perdido?
A primeira solicitação "nonpostback" para viewBean, a propriedade someValue em sessionBean é nula. Agora, em uma solicitação de postagem, estou definindo uma entrada do usuário como someValue. O problema é que someValue é sempre nulo em qualquer solicitação "nonpostback". Aqui está o meu código:
@ManagedBean
@ViewScoped
public class ViewBean implements Serializable {
@ManagedProperty(value = "#{sessionBean}")
private SessionBean sessionBean;
private String inputText;
@PostConstruct
public void init() {
if (sessionBean.getSomeValue() != null) // ALWAYS NULL
doSomething(sessionBean.getSomeValue());
}
private void doSomething(String s) {}
public void action(final ActionEvent ae) {
sessionBean.setSomeValue(getInputText());
doSomething(getInputText());
}
GETTERS/SETTERS
}
@ManagedBean
@SessionScoped
public class SessionBean implements Serializable {
private String someValue;
GETTER/SETTER
}
Sinto que estou fazendo algo errado. Estou usando o Mojarra 2.1.2 Qualquer conselho é bem-vindo. Obrigado
UPDATE: O uso de EvaluExpressionGet nos dois métodos (init e action) funciona bem:
FacesContext context = FacesContext.getCurrentInstance();
SessionBean sessionBean = context.getApplication().evaluateExpressionGet(context,
"#{sessionBean}", SessionBean.class);