Murilo_Ferreira 20 de mar. de 2013
Acho que você poderia usar commandLink, onde ma managedBean responde a pagina a ser carregada.
//JSF
& lt ; h : commandLink action = "#{user.goLoginPage}" value = "Login page + Param " & gt ;
& lt ; f : param name = "username" value = "mkyong" /& gt ;
& lt ; / h : commandLink & gt ;
ou outputLink
& lt ; h : outputLink value = "pagina2.xhtml" & gt ;
& lt ; h : graphicImage library = "images" name = "sofa.png" /& gt ;
& lt ; / h : outputLink & gt ;
mkaule 20 de mar. de 2013
Murilo_Ferreira:
Acho que você poderia usar commandLink, onde ma managedBean responde a pagina a ser carregada.
//JSF
& lt ; h : commandLink action = "#{user.goLoginPage}" value = "Login page + Param " & gt ;
& lt ; f : param name = "username" value = "mkyong" /& gt ;
& lt ; / h : commandLink & gt ;
ou outputLink
& lt ; h : outputLink value = "pagina2.xhtml" & gt ;
& lt ; h : graphicImage library = "images" name = "sofa.png" /& gt ;
& lt ; / h : outputLink & gt ;
O commandLink eu sei que tenho que usar.
Mas como vou comparar o link que eu clico com o id da minha funcionalidade para saber qual página devo mandar?
Murilo_Ferreira 20 de mar. de 2013
entendi, mas não seria nem mais facil colocar o caminho da pagina absoluto pelo outputLink, sendo que o seu menu vai ser montado se forma dinamica ?
Murilo_Ferreira 20 de mar. de 2013
Caso queira insistir em usar o commandLink mesmo, faça o seguinte para acessar o id.
//JSF
& lt ; h : commandLink action = "#{mg.executeMenu}" value = "Menu 1" & gt ;
& lt ; f : param name = "id" value = "1234" /& gt ;
& lt ; / h : commandLink & gt ;
public String executeMenu () {
Integer id = Integer .valueOf ( FacesContext .getCurrentInstance () .getExternalContext () .getRequestParameterMap () .get ( "id" )) ;
if ( id == 1234 ) return "pagina1234.jsf" ;
return null ;
}
mkaule 20 de mar. de 2013
Murilo_Ferreira:
Caso queira insistir em usar o commandLink mesmo, faça o seguinte para acessar o id.
//JSF
& lt ; h : commandLink action = "#{mg.executeMenu}" value = "Menu 1" & gt ;
& lt ; f : param name = "id" value = "1234" /& gt ;
& lt ; / h : commandLink & gt ;
public String executeMenu () {
Integer id = Integer .valueOf ( FacesContext .getCurrentInstance () .getExternalContext () .getRequestParameterMap () .get ( "id" )) ;
if ( id == 1234 ) return "pagina1234.jsf" ;
return null ;
}
Entendo,
O problema é que seu eu usar componente outputLink
Eu mato meu MVC.
Eu preciso ir no Controller.
Vou fazer os teste e coloco o resutado aqui.
mkaule 24 de mar. de 2013
Há quem se interessar.
O problema foi resolvido dessa maneira.
O meu Menu é dinâmico, por isso esse “trabalhinho”.
Se alguém tiver uma maneira mais elegante de fazer me fala. Claro sem matar meu MVC.
<h:form>
<h:dataTable value= "#{sessionScope.usuario.perfil.funcionalidades}" var= "item" >
<h:column>
<f:facet name= "header" >
<h:outputText value= "Menu" />
</f:facet>
<h:commandLink action= "#{menuMB.navegar}" actionListener= "#{menuMB.executaMenu}" >
<h:outputText value= "#{item.nome}" />
<f:attribute name= "funcionalidade" value= "#{item.id}" />
</h:commandLink>
</h:column>
</h:dataTable>
</h:form>
public String navegar () {
return resultado ;
}
public void executaMenu ( ActionEvent event ){
this . funcionalidades = this . funciDAO . findAll ( FuncionalidadeBean . class );
int idFuncionalidade = ( Integer ) event . getComponent (). getAttributes (). get ( "funcionalidade" );
this . resultado = null ;
for ( FuncionalidadeBean funcionalidade : this . funcionalidades ) {
if ( funcionalidade . getId () == idFuncionalidade )
this . resultado = getString ( funcionalidade . getNome ());
}
}
private String getString ( String string ){
if ( string . equals ( "Manter Usuários" ))
return "manterUsuarios" ;
if ( string . equals ( "Manter Atendentes" ))
return "manterAtendentes" ;
return null ;
}
Murilo_Ferreira 25 de mar. de 2013
Só uma opinião, acho que deveria remover o metódo getString abaixo, que está muito impraticável.
private String getString ( String string ) {
if ( string .equals ( "Manter Usuários" ))
return "manterUsuarios" ;
if ( string .equals ( "Manter Atendentes" ))
return "manterAtendentes" ;
return null ;
}
e criar um atributo “path” em FuncionalidadeBea, e deixar seu executeMenu da seguinte forma.
public void executaMenu ( ActionEvent event ){
this . funcionalidades = this . funciDAO . findAll ( FuncionalidadeBean . class );
int idFuncionalidade = ( Integer ) event . getComponent (). getAttributes (). get ( "funcionalidade" );
this . resultado = null ;
for ( FuncionalidadeBean funcionalidade : this . funcionalidades ) {
if ( funcionalidade . getId () == idFuncionalidade ) {
this . resultado = funcionalidade . getPath ();
}
}
}
Kratos_men 25 de mar. de 2013
ME AJUDEM POR FAVOR ESTOU EM DUVIDA COMO FAZER ESSAS PERGUNTAS EM LINGUAGEM JAVA…
Faça um programa que leia um número e informe se o dobro do número é maior que 35.
Faça um programa que leia um número e informe se a metade do número é menor que 12.
Faça um programa que leia dois números e informe apenas se o primeiro é maior que o segundo.
Faça um programa que leia dois números e informa se o primeiro é igual ao segundo.
Faça um programa que leia dois números e informe se o primeiro é maior, menor ou igual ao segundo.
Faça um programa que leia três números e informe qual dos três é o maior.
Fazer um programa que receba um número e mostre se ele é positivo, negativo ou nulo (0).
Murilo_Ferreira 25 de mar. de 2013
Kratos men:
ME AJUDEM POR FAVOR ESTOU EM DUVIDA COMO FAZER ESSAS PERGUNTAS EM LINGUAGEM JAVA…
Faça um programa que leia um número e informe se o dobro do número é maior que 35.
Faça um programa que leia um número e informe se a metade do número é menor que 12.
Faça um programa que leia dois números e informe apenas se o primeiro é maior que o segundo.
Faça um programa que leia dois números e informa se o primeiro é igual ao segundo.
Faça um programa que leia dois números e informe se o primeiro é maior, menor ou igual ao segundo.
Faça um programa que leia três números e informe qual dos três é o maior.
Fazer um programa que receba um número e mostre se ele é positivo, negativo ou nulo (0).
O ideal é que você criar um novo tópico especifico para isso, e começar os estudo em java.