Várias Apps Web e só um Menu

7 respostas
danieldestro

Caros,

Um cliente quer tornar acessível via web aos seus clientes e fornecedores uma gama de aplicativos. Todos farão parte de um portal web dessa empresa, seguindo um mesmo padrão visual e um mesmo ponto de acesso.

Eles querem que todas as aplicações possuam no seu topo, o menu “corporativo”, com acesso a todas as aplicações que o usuário tem acesso.

Pensei em criar o menu como uma aplicação web, pois ele tem toda uma lógica de negócio para montar os acessos.

Como cada aplicação será um contexto web diferente, ficará difícil integrar o menu ao layout de cada aplicação, mesmo usando algo como Tiles (Struts).

Frames não são uma opção, pois o menu pode expandir e o frame mataria essa opção.

Como vocês integrariam este menu às aplicações? Pensei em algumas alternativas, como, por exemplo, criar uma classe de proxy http que acessa o menu e “cola” ele na página da aplicação. Outras como duplicar isso nas aplicações.

Já tiveram algo semelhante? Como solucionar da melhor forma?

Tks

7 Respostas

rodrigo_corinthians

Esse ano participei de um projeto um pouco parecido com seu onde precisava montar um menu de hierarquia com acesso diferente para tais usuários usamos um plugin chamado Struts-Layout francês, a tag “Treeview” faz a montagem do menus mains e children’s bastando apenas popular o MenuComponent e jogar no request aí via javascript ele monta o menu na tela, dá uma olhada nesse link talvez te ajude.
http://struts.application-servers.com/doc/tags/treeview.html

Sem mais, Rodrigo.

danieldestro

Meu problema não é com o layout de montagem do menu, mas sim como integrar o menu (um contexto web) em uma aplicação (outro contexto web).

Luca

Olá

Nunca usei mas não seria adequado neste caso o uso de portlets do tipo abaixo?

http://portals.apache.org/jetspeed-2/

http://portals.apache.org/pluto/

http://www.onjava.com/lpt/a/6208

http://www.onjava.com/lpt/a/6459

http://today.java.net/lpt/a/171

[]s
Luca

danieldestro

Legal Luca, mas no meu caso parece mais canhão para matar mosca.

Se bem que eles compraram o Oracle Portal, mas, sinceramente, prefiro não entrar nessa onda, porque tem coisa demais ai.

Thiago_Senna

Daniel,

utilizar um framework como o Sitemesh para aplicacar o padrão decorator não resolveria? Teve um projeto que participei onde o Sitemesh renderizava até uma aplicação PHP.

No entanto não sei se o Sitemesh ajudaria, já que você citou que mesmo com o Tiles o negócio ainda ficaria difícil.

Outra opção que pensei seria as aplicações possuirem o menu dentro de uma tag div, e seria responsabilidade da aplicação principal (a que junta tudo) renderizar os menus.

Mas sei lá. O negócio parecer ser mais punk que isto… rsrs…

Até +

danieldestro

Quanto ao Tiles, pelo que sei, ele não trabalha com recursos cross-context (contextos diferentes). O SiteMesh eu não sei, pelo o que você disse, acho que sim.

Quanto ao DIV, não entendi a solução.

Thiago_Senna

Cross-context? Não sei o que é isso não. Mas este caso que citei onde abriam uma aplicação feita em PHP se não me engano era por que havia um servlet que renderizava a aplicação PHP. Só não sei se esta aplicação era um outro contexto.

Quanto a idéia do div deixa pra lá (é meio gambi e nem sei se rola). Talvez o Sitemesh seja mais que suficiente. Dê uma olhada nestes links:

http://forums.opensymphony.com/thread.jspa?threadID=1454&tstart=0
http://osdir.com/ml/web.sitemesh.general/2005-06/msg00009.html
http://osdir.com/ml/web.sitemesh.general/2002-10/msg00006.html
http://osdir.com/ml/web.sitemesh.general/2005-06/msg00008.html
http://blogs.armondavanes.com/experiences/archives/000030.html

Obs: O primeiro link é o mais indicado. Pelo que entendi parece que tem como você utilizar o mesmo decorator para vários webapps. Os outros links foram o caminham que percorri até chegar no primeiro link.

Se aplicar o mesmo decorator para vários webapps diferentes for a solução que você procura acredito que seu problema está resolvido.

Criado 2 de maio de 2007
Ultima resposta 3 de mai. de 2007
Respostas 7
Participantes 4