| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2008 20:15:23
|
Rodrigo Manhães
JavaGuru
![[Avatar]](/images/avatar/3e9f7c16bd1cdea78f8e2eea72dfdfbe.png)
Membro desde: 14/07/2005 17:07:07
Mensagens: 242
Localização: Campos dos Goytacazes/RJ
Offline
|
Boa noite,
tenho uma aplicação JSF/Facelets/EJB na qual estou utilizando o JAAS. O acesso (ou a negação deste) às páginas e aos EJB por diferentes papéis está funcionando a contento. O único problema é como montar o menu da aplicação (residindo em um template Facelets) mostrando apenas as opções às quais o usuário tem acesso.
As duas soluções que encontrei e que funcionaram foi:
1- colocar os papéis em elementos <f:attribute> dos <h:commandLink>, do tipo
e espalhar binding e rendered em todos os links para que o managed bean responda quem será renderizado e quem não.
2- Criar três versões (pois temos, neste sistema, três papéis) do menu no template e renderizá-los seletivamente.
Não considero nenhuma das duas opções é particularmente boa. Exigem código demais, ferem o princípio do DRY (Don't Repeat Yourself), são extremamente hardcoded.
Tentei criar um componente mas não consegui fazer passar o atributo action.
Alguém teria uma solução mais inteligente pra isto (ou sabe criar um componente que estenda UICommand)?
Obrigado.
|
https://github.com/rodrigomanhaes
http://programacaoradical.blogspot.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 09:22:16
|
rponte
JavaEvangelist
![[Avatar]](/images/avatar/37a90a1fe7512a804347fa3e572c6b86.png)
Membro desde: 18/02/2008 10:06:25
Mensagens: 413
Offline
|
Gere/Crie o menu dinamicamente no managed bean e faça o binding com a página deste componente de menu. Assim só será gerado o menu de acordo com as permissões do usuário, Além de ser mais simples ainda vai ter poupar recursos no servidor.
|
Rafael Ponte
http://www.rponte.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 10:37:02
|
Rodrigo Manhães
JavaGuru
![[Avatar]](/images/avatar/3e9f7c16bd1cdea78f8e2eea72dfdfbe.png)
Membro desde: 14/07/2005 17:07:07
Mensagens: 242
Localização: Campos dos Goytacazes/RJ
Offline
|
Meu menu é uma lista <ul> onde cada <li> contém um <h:commandLink> (e, eventualmente, outro <ul> para submenus). O que é esse componente de menu? A sua resposta dá a entender que é um componente único. Se for, eu não conheço.
|
https://github.com/rodrigomanhaes
http://programacaoradical.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 10:45:47
|
rponte
JavaEvangelist
![[Avatar]](/images/avatar/37a90a1fe7512a804347fa3e572c6b86.png)
Membro desde: 18/02/2008 10:06:25
Mensagens: 413
Offline
|
Quando você falou de menu imaginei que você estivesse falando de algo como,
http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=dropDownMenu
|
Rafael Ponte
http://www.rponte.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 10:55:34
|
Rodrigo Manhães
JavaGuru
![[Avatar]](/images/avatar/3e9f7c16bd1cdea78f8e2eea72dfdfbe.png)
Membro desde: 14/07/2005 17:07:07
Mensagens: 242
Localização: Campos dos Goytacazes/RJ
Offline
|
Vou dar uma olhada no Rich Faces. Aqui somos muito HTML/CSS oriented e acabamos esquecendo de soluções server-side. E excelente sugestão de montar o menu no servidor, não fazendo a view saber de papéis e tal, fica bem melhor mesmo e aumenta a coesão. Obrigado!
|
https://github.com/rodrigomanhaes
http://programacaoradical.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2008 11:25:26
|
leosouzabh
JavaTeenager
![[Avatar]](/images/avatar/9b40aee76034c9543ceacba5df759a1d.jpg)
Membro desde: 28/03/2006 12:04:34
Mensagens: 193
Offline
|
Um exemplo bem simples usando JSCookMenu
http://wiki.apache.org/myfaces/Dynamic_Menus_with_JSCookMenu
|
Procure sempre o melhor!! |
|
|
 |
|
|