Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Estou com dúvida no curso de JSF 2: Armazenamento da arvore de componentes.

Não consegui entender como funciona o armazenamento do estado dos componentes. O curso ensina que os componentes são instanciados no primeiro GET e que o estado é armazenado na sessão, mas não ficou claro o que é armazenado. O ManagedBean, o Modelo ou o componente?

3 respostas

Pelo que entendi: quando vc faz a primeira requisição, é montada a árvore (form[panelGrid[imputText1, imputText2, imputText3, button1]]) por exemplo, indicando que vc criou um form e dentro desse form há um panelGrid e dentro desse há três inputText e um botao. Então é criado um objeto para referenciar cada componente desses (InputText input1 = new InputText(), por exemplo) e armazenados na sessão.

Olá Fernando,

O problema é que o texto do input1 só muda quando mudamos o estado do objeto Livro, ou seja, parece que o modelo também é armazenado na sessão. Se o estado do componente muda em função do estado do modelo, não entendo porque o componente também é armazenado na sessão. Pelo que entendi, parece que a View tem uma referência para o ManagedBean e esse é armazenado na sessão.

solução!

Todos e se não tem uma anotação de escopo serve o padrão de escopo que creio que é de requisição e pode ser mudado para escopo de sessão ou outros escopos.