JSF - Alternativas ao scope session  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
mario.fts
GUJ Ranger
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 815
Localização: São Paulo - ZL
Offline

Olá a todos.

Tenho alguns cenários em uma aplicação JSF onde estou utilizando managed beans com scope session. Gostaria de saber se existe alguma alternativa para isso, já que acredito que esses beans podem causar um problema de escalabilidade quando a aplicação for para produção.

Cenário 1: tabela com lista editável.
Tenho um MB que faz a pesquisa de funcionários, e os lista num datatable. Cada linha da tabela tem um botão que permite a edição do registro do funcionário. Quando o usuário clica no botão, eu pego o funcionário correspondente da lista e mando para outra tela que permite a edição.

Cenário 2 : Combo carrega combo
Na tela de edição/cadastro de funcionários, tenho alguns combos que dependem de outros pra carregar. por exemplo, eu trago na tela todas as diretorias. Quando o usuário escolhe uma diretoria, eu preencho o combo de gerências com as gerências daquela diretoria, quendo ele escolhe a gerência eu preencho o combo de departamentos com todos os departamentos daquela gerência, e assim por diante.

Então, tem algum meio de fazer esses dois cenários sem que os MB sejam scope session?

Valeu!

Mário Amaral Gonçalves

"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra
[Email]
yorgan
GUJ Ranger
[Avatar]

Membro desde: 14/08/2006 19:41:31
Mensagens: 888
Localização: Floripa/SC
Offline

Você pode utilizar o scopo REQUEST.
Mas provavelmente você terá que guardar alguns dados na sessão, pois a cada submit do formulário ele cria uma nova instância do Bean.

[]´s

Daniel
[Email] [WWW]
mario.fts
GUJ Ranger
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 815
Localização: São Paulo - ZL
Offline

Então yorgan, o problema é esse gerenciamento mesmo. Eu até consigo ficar gerenciando os objetos em memória, mas isso é muito sujeito a falhas.

Eu tava procurando algum esquema estilo @DataModel do Seam, ou scope Flash do Spring WebFolw

A idéia é tornar os beans scope request mesmo, mas eu queria que esse gerenciamento fosse algo mais automático.

[]'s

This message was edited 1 time. Last update was at 08/07/2009 08:39:50


Mário Amaral Gonçalves

"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra
[Email]
markinho
JavaChild

Membro desde: 29/05/2008 18:22:00
Mensagens: 100
Localização: Indaiatuba - SP
Offline

Olá mario.fts!

No cenário 1 você pode usar o scope de request da seguinte maneira, ao chamar a outra página para edição você envia o código do funcionário por paramêtro!

No cenário 2 você pode usar ajax, quando trocar de diretoria(onchange) você manda renderizar(reRender) o combo de gerência ... e assim por diante, tornando o managed bean como scope de request! Utilize o A4JForJSF

Qualquer dúvida estamos ai!

Abraços


Marcos Pereira

Sun Certified Java Programmer 5.0 (SCJP)
mario.fts
GUJ Ranger
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 815
Localização: São Paulo - ZL
Offline

putz.. acabei de descobrir porque estava como scope session:

segue o código cenário 1



quando o usuário clica no combo de gerencia, o evento do valueChangeListener não é chamado se o scope do bean não for session.
Acho que isso tem a ver com http://www.theserverside.com/news/thread.tss?thread_id=44186, um problema de commandLinks dentro de datatables.

Existe alguma soluição alternativa pra esse problema? no cenário 2 é a mesma coisa, quando eu clico no botão editar ele tbm não chama o evento e faz um submit pra mesma página.

[]'s

Mário Amaral Gonçalves

"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra
[Email]
markinho
JavaChild

Membro desde: 29/05/2008 18:22:00
Mensagens: 100
Localização: Indaiatuba - SP
Offline

Você está utilizando que tipo de form um <h:form> ou <a4j:form>?

Pelo que sei ocorre esse problema somente quando o form é <h:form>!

Tente utilizar <a4j:form>

Abraços

Marcos Pereira

Sun Certified Java Programmer 5.0 (SCJP)
mario.fts
GUJ Ranger
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 815
Localização: São Paulo - ZL
Offline

Cara é <h:form>.

Vou testar aqui e já mando o resultado.

Value!

Mário Amaral Gonçalves

"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra
[Email]
mario.fts
GUJ Ranger
[Avatar]

Membro desde: 14/05/2008 09:41:06
Mensagens: 815
Localização: São Paulo - ZL
Offline

nada feito.

segue a página:



Quando eu clico no editar, ele dá submit pra mesma página, e não chama o método do MB.



Mário Amaral Gonçalves

"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra
[Email]
alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

o nome do ben é esse né ? colaboradorPesq

tenta fazer isso:

com isso vc consegue fazer o submit..

http://www.urubatan.com.br/jsf_commandlink_datatable_problemas/

This message was edited 1 time. Last update was at 08/07/2009 13:28:03


Felipe Alves
[Email]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team