Erro: montar menu dinâmico  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
maurenginaldo
JavaEvangelist
[Avatar]

Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline

Oi pessoal,

estou tentando montar um menu dinâmico com o RichFaces.
Criei um componente com o facelets e estou passando um List #{lista} como parâmetro.
Vejam o codigo abaixo:




Será executado um forEach em cima da lista e dependendo do tipo do menu será aberto um tag de DropDown, MenuGroup ou fechada.
Fiz alguns testes apenas imprimindo através de um outputText o #{itemmenu.tipo} e confirmei que a sequencia de menus está correta.
Mas quando vou executar o código ao abrir a janela é gerado o erro:



Eu penso que antes de interpretar o código, o parser passa pelo código e identifica que existem tags abertas e não fechadas, dando um erro logo na primeira. Mas analisando o código sabemos que ao executar funcionará corretamente.

Alguém sabe como resolver isso?
O erro é mesmo o que estou pensando?

Valeu.

Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões.
[Email] [WWW] [MSN]
spycall
JavaTeenager
[Avatar]

Membro desde: 26/04/2005 14:29:59
Mensagens: 189
Localização: São paulo
Offline

Cara, eu fiz um menu dinamico com RichFaces, mas eu crie o menu no MBControler e amarrei o objeto do jsp com o binding.

No mundo existem 10 tipos de pessoas, as que conhecem e as que não conhecem binário.
[MSN]
maurenginaldo
JavaEvangelist
[Avatar]

Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline

Boa idéia spycall,

eu nunca fiz componente no bean.
Você tem algum trecho de código que para exemplificar?

Valeu.

Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões.
[Email] [WWW] [MSN]
spycall
JavaTeenager
[Avatar]

Membro desde: 26/04/2005 14:29:59
Mensagens: 189
Localização: São paulo
Offline



Depois é só vc criar uma tag toolbar no jsp e amarrar com o controller.



não esqueça de fazer o get e set de toolBar

This message was edited 2 times. Last update was at 24/01/2008 14:32:51


No mundo existem 10 tipos de pessoas, as que conhecem e as que não conhecem binário.
[MSN]
maurenginaldo
JavaEvangelist
[Avatar]

Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline

Legal spycall,

andei olhando e vi que da para usar as bibliotecas do próprio RichFaces



Vou tentar fazer assim.

Mas a título de curiosidade, alguém sabe o porque do erro no código do 1º post???

Valeu pessoal.

Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões.
[Email] [WWW] [MSN]
Suzy
Smalltalk

Membro desde: 16/01/2008 18:04:01
Mensagens: 2
Offline

Somente para postar... Um exemplo de menu dinâmico com JSF:

Na classe bean:

import org.richfaces.component.html.HtmlDropDownMenu;
import org.richfaces.component.html.HtmlMenuGroup;
import org.richfaces.component.html.HtmlMenuItem;
import org.richfaces.component.html.HtmlMenuSeparator;
import org.richfaces.component.html.HtmlToolBar;

HtmlToolBar menuBar = new HtmlToolBar();

public HtmlToolBar getMenuBar() {
montarMenu();
return menuBar;
}

public void setMenuBar(HtmlToolBar menuBar) {
this.menuBar = menuBar;
}


public HtmlToolBar montarMenu() throws Exception {

HtmlToolBar menu = new HtmlToolBar();


HtmlDropDownMenu menuDrop = new HtmlDropDownMenu();
menuDrop.setValue("D1");
HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setValue("I1");
menuItem.setTarget("principal");
menuDrop.getChildren().add(menuItem);
menuBar.getChildren().add(menuDrop);


HtmlDropDownMenu menuDrop = new HtmlDropDownMenu();
menuDrop.setValue("D2");
HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setValue("I1");
menuDrop.getChildren().add(menuItem);
HtmlMenuGroup menuGrop = new HtmlMenuGroup();
menuGrop.setValue("G1");
HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setValue("S1");
menuGrop.getChildren().add(menuItem);
menuDrop.getChildren().add(menuGrop);
HtmlMenuGroup menuGrop = new HtmlMenuGroup();
menuGrop.setValue("G2");
HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setValue("S2");
menuGrop.getChildren().add(menuItem);
menuDrop.getChildren().add(menuGrop);
menuBar.getChildren().add(menuDrop);
}

Na JSP:
<rich:toolBar binding="#{menu.menuBar}"/>


Para tornar dinâmico é somente colocar os dados no banco e criar loop para criar o Menu...

abraço

Suzy

'Aprender nunca é demais...."
jeanbr07
Smalltalk

Membro desde: 30/01/2008 10:21:31
Mensagens: 3
Offline

cara acho q o erro do teu primeiro codigo esta na parte do loop que ta fechando assim

<rich:dropDownMenu...>

<rich:menuGroup ....>

.
.
.

</rich:dropDownMenu>

</rich:menuGroup>

e na verdade esse final deve ser ao contrario:

<rich:dropDownMenu...>

<rich:menuGroup ....>

.
.
.
</rich:menuGroup>

</rich:dropDownMenu>


pelo menos é só o erro q eu percebi
anderson144
Entusiasta Java

Membro desde: 28/02/2008 16:03:25
Mensagens: 19
Offline

Suzy wrote:Somente para postar... Um exemplo de menu dinâmico com JSF:

Na classe bean:

import org.richfaces.component.html.HtmlDropDownMenu;
import org.richfaces.component.html.HtmlMenuGroup;
import org.richfaces.component.html.HtmlMenuItem;
import org.richfaces.component.html.HtmlMenuSeparator;
import org.richfaces.component.html.HtmlToolBar;

HtmlToolBar menuBar = new HtmlToolBar();

public HtmlToolBar getMenuBar() {
montarMenu();
return menuBar;
}

public void setMenuBar(HtmlToolBar menuBar) {
this.menuBar = menuBar;
}


public HtmlToolBar montarMenu() throws Exception {

HtmlToolBar menu = new HtmlToolBar();


HtmlDropDownMenu menuDrop = new HtmlDropDownMenu();
menuDrop.setValue("D1");
HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setValue("I1");
menuItem.setTarget("principal");
menuDrop.getChildren().add(menuItem);
menuBar.getChildren().add(menuDrop);


HtmlDropDownMenu menuDrop = new HtmlDropDownMenu();
menuDrop.setValue("D2");
HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setValue("I1");
menuDrop.getChildren().add(menuItem);
HtmlMenuGroup menuGrop = new HtmlMenuGroup();
menuGrop.setValue("G1");
HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setValue("S1");
menuGrop.getChildren().add(menuItem);
menuDrop.getChildren().add(menuGrop);
HtmlMenuGroup menuGrop = new HtmlMenuGroup();
menuGrop.setValue("G2");
HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setValue("S2");
menuGrop.getChildren().add(menuItem);
menuDrop.getChildren().add(menuGrop);
menuBar.getChildren().add(menuDrop);
}

Na JSP:
<rich:toolBar binding="#{menu.menuBar}"/>


Para tornar dinâmico é somente colocar os dados no banco e criar loop para criar o Menu...

abraço


Suzy também estou implementando um menu dinâmico com o richfaces. Para isso utilizei os exemplos do próprio framework e consegui carregar o menu, com os dados vindo do banco de dados. O q acontece com o meu menu, é que quando eu clico em uma opção do menu, ele carrega o jsf correspondente, (no primeiro click no menu). Depois quando clico em outra opção do menu, ao invés de carregar a página jsf correspondente, ele carrega a anterior. Estou utilizando iframe, pq preciso do menu em todas as telas e não quero utilizar include - pq no projeto em questão vai dar muito problema utilizar include.
Vc tem alguma idéia para me ajudar a fazer com que o menu richfaces (DropDownMenu) carregue as páginas certas?

Obrigado!

Mortification rulz!!!
"Trazendo sempre por toda a parte a mortificação do Senhor Jesus no nosso corpo, para que a vida de Jesus se manifeste também nos nossos corpos"
II Co 4:10
gustavodelgado
JavaChild
[Avatar]

Membro desde: 24/02/2005 13:57:40
Mensagens: 112
Localização: Maringá - PR
Offline

Olá pessoal...

Eu tenho um menu dinâmico em minha aplicação que parou de funcionar assim que atualizei os jars do richfaces para a nova versão (3.2.0). Na versão anterior funcionava blz.
Alguém aí conseguiu fazê-lo funcionar na nova versão??
Fiz alguns testes aqui com os exemplos postados neste tópico, mas o problema continuou o mesmo... o menu simplesmente não aparece (como se a propriedade binding não estivesse lá).

[]s
[Email] [WWW] [MSN]
walyson amaral
Debugger
[Avatar]

Membro desde: 19/12/2008 22:29:30
Mensagens: 54
Offline

Suzy também estou implementando um menu dinâmico com o richfaces. Para isso utilizei os exemplos do próprio framework e consegui carregar o menu, com os dados vindo do banco de dados. O q acontece com o meu menu, é que quando eu clico em uma opção do menu, ele carrega o jsf correspondente, (no primeiro click no menu). Depois quando clico em outra opção do menu, ao invés de carregar a página jsf correspondente, ele carrega a anterior. Estou utilizando iframe, pq preciso do menu em todas as telas e não quero utilizar include - pq no projeto em questão vai dar muito problema utilizar include.
Vc tem alguma idéia para me ajudar a fazer com que o menu richfaces (DropDownMenu) carregue as páginas certas?

Obrigado!


jeanbr07, você conseguiu resolver este problema ?

walyson Trautenmüller
("O essencial é invisível aos olhos")
[MSN]
albama@bol.com.br
JavaChild

Membro desde: 06/04/2005 14:51:01
Mensagens: 123
Offline

Pessoal eu segui as dicas postadas e consegui montar o menu dinâmico.

Veja um trecho da página.



Aqui eu preencho o toolbar com botões



Coloquei os getters e setters para o toolBar.

O problema é que não consigo saber em qual botão foi clicado.

Alguém sabe como resolver isso ?

Marco Aurélio

Marco Aurélio
aureliorodrigues@gmail.com
[Email] [MSN]
walyson amaral
Debugger
[Avatar]

Membro desde: 19/12/2008 22:29:30
Mensagens: 54
Offline

Eu havia conseguido de outra forma, mas ficou muiito legal, se quiser me passe o seu e-mail que eu eu envio os codigos.

walyson Trautenmüller
("O essencial é invisível aos olhos")
[MSN]
albama@bol.com.br
JavaChild

Membro desde: 06/04/2005 14:51:01
Mensagens: 123
Offline

Segue meu email : aureliorodrigues@gmail.com

Marco Aurélio
aureliorodrigues@gmail.com
[Email] [MSN]
walyson amaral
Debugger
[Avatar]

Membro desde: 19/12/2008 22:29:30
Mensagens: 54
Offline

Mandei no seu e-mail.

Abraços

walyson Trautenmüller
("O essencial é invisível aos olhos")
[MSN]
Cherubini
JavaTeenager
[Avatar]

Membro desde: 07/03/2008 10:03:25
Mensagens: 155
Localização: São José dos Campos
Offline

Walyson, blz cara ?

tipo eu consegui montar meu menu dinamico(arrumei o duplicate id colocando meu MB como request)

so q como faço ele executar chamando paginas com ajax!

pq toda vez q click no botao ele da refresh, vc tem alguma dica ?

vlws pela ajuda, e mals por resucitar o topico!rs

Thiago M.Cherubini

Quanto mais aprendemos mais temos que aprender!
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team