Acho que você poderia usar commandLink, onde ma managedBean responde a pagina a ser carregada.
//JSF
<h:commandLink action="#{user.goLoginPage}" value="Login page + Param ">
<f:param name="username" value="mkyong" />
</h:commandLink>
ou outputLink
<h:outputLink value="pagina2.xhtml">
<h:graphicImage library="images" name="sofa.png" />
</h:outputLink>
[quote=Murilo_Ferreira]Acho que você poderia usar commandLink, onde ma managedBean responde a pagina a ser carregada.
//JSF
<h:commandLink action="#{user.goLoginPage}" value="Login page + Param ">
<f:param name="username" value="mkyong" />
</h:commandLink>
ou outputLink
[code]
<h:outputLink value=“pagina2.xhtml”>
<h:graphicImage library=“images” name=“sofa.png” />
</h:outputLink>
[/code][/quote]
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?
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 ?
Caso queira insistir em usar o commandLink mesmo, faça o seguinte para acessar o id.
//JSF
<h:commandLink action="#{mg.executeMenu}" value="Menu 1">
<f:param name="id" value="1234" />
</h:commandLink>
public String executeMenu() {
Integer id = Integer.valueOf(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"));
if (id == 1234) return "pagina1234.jsf";
return null;
}
[quote=Murilo_Ferreira]Caso queira insistir em usar o commandLink mesmo, faça o seguinte para acessar o id.
//JSF
<h:commandLink action="#{mg.executeMenu}" value="Menu 1">
<f:param name="id" value="1234" />
</h:commandLink>
[code]
public String executeMenu() {
Integer id = Integer.valueOf(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(“id”));
if (id == 1234) return “pagina1234.jsf”;
return null;
}
[/code][/quote]
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.
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;
}
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();
}
}
}
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).
[quote=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).
[/quote]
O ideal é que você criar um novo tópico especifico para isso, e começar os estudo em java.