[RESOLVIDO] Variáveis na sessão

3 respostas
mondor

Fala galerinha! Tudo certo?

Pessoal, to com um probleminha racha cuca aqui haha, vejam se vocês podem me ajudar. Primeiro vou contar um pouco do funcionamento para vocês entenderem e depois meu problema real.

Tenho um sisteminha em vRaptor aqui, que possui dois menus. O menu normal, com “inicio, mensagens, meus projetos, minhas configuracoes” e também tenho um menu pertencentes ao projeto, com “atividades, planejamento, documentos, agenda”.
Para este menu aparecer, eu preciso selecionar algum projeto meu. Caso contrário é mostrado no lugar “esperando seleção de um projeto”.

Até agora, o sistema estava funcionando com sessão, você escolhia o projeto e ele era salvo na sessão, ai conseguia sempre acessar ele na minha página jsp (usava {userWeb.project}).
Após botamos as urls com o id do projeto, exemplo: /project/{project.id}/activity.

Show de bola!!! Funcionando certinho.

O problema é que:

  • Você está vendo as atividades do projeto 1. /project/1/activity
  • Seu amigo passa um link das atividades do projeto 2. /project/2/activity

Você visualiza corretamente a atividade, mas o seu menu estará ainda apontando para links do projeto 1, porque ele ta salvo na sessão!!!
O grande problema, é que meu menu (localizado em uma pasta commons) é igual para todas as páginas, sendo apenas um include em todas páginas.

Minha solução na cabeça, mas que não sei como implementar e queria uma ajuda de vocês:

  • Interceptar toda url que passa {project.id} (como???) e salvar na sessão caso a id seja diferente da já setada. Então em base, se seu amigo passou um link para o projeto, você já estaria no projeto automaticamente, pq estaria salvo na sessão.

Alguém sabe como interceptar deste modo? Ou possui alguma outra alternativa?!

Obrigado pessoal!

3 Respostas

Gerva

N tem como o menu pegar o id que está sendo visualizado?
no caso está rodando WEB já?

Pq n entendi mto bem, o menu está na página certo? Se o ID é passado pela página, pq precisa salvar em uma sessão? Pq com sessão, abrir dois projetos, vai dar merda mesmo, a não ser que sobreescreva a sessão todas as vezes que acessar a página, mas aí n vejo motivo para ter a sessão o.O

Se a própria classe java passar o id quando for carregado o menu, não precisara da sessão, e não irá ter este problema, mesmo com duas páginas abertas em projetos diferentes.

mondor

Gerva, já resolvi isso por um jeito aqui.

No caso, eu preciso disso salvo na sessão.
Criei um interceptor em todas as urls que possuem /projects/id com uma expressão regular.

Nesta url eu identifico se o projeto é diferente ou não do já salvo, e troco. Futuramente vai ser melhor ainda, para conseguir controlar permissões/acessos. :slight_smile:

Abraços!

Gerva

Mas e se eu estou com o projeto 1 aberto, aí abro uma nova aba com o projeto 2, quando eu voltar pro projeto 1 não vai ferrar?
Será que não era melhor manter um vetor como variável de sessão?

Criado 13 de janeiro de 2012
Ultima resposta 19 de jan. de 2012
Respostas 3
Participantes 2