Criando um link para uma outra pagina com JSF
Boa noite,
Preciso de uma dica para fazer a paginação de um sistema que estou criando, só para especificar é um sistema para uma academia onde o mesmo desenvolve uma avaliação física.
Pois bem, estou utilizando um commandlink, qual o atributo devo utilizar para direcionar meu link para uma outra pagina.
Laender Alves
Curtidas 0
Respostas
Efraim Filho
14/10/2012
No caso próxima pagina mantendo os dados da anterior não é ? , esta usando apenas JSF ?? ou esta utilizando (PRIME ou RICH)Faces também ?
GOSTEI 0
Davi Costa
14/10/2012
Qual o problema?
Não está conseguindo mudar de página?
abcs
GOSTEI 0
Amanda Brito
14/10/2012
Você está tentando direcionar uma página para outra?
Pode usar o commandLink mesmo, contendo o caminho Pode criar um método na sua classe para redirecionar, algo assim:
E ai, chama esse método na sua tela.
No seu bean, você pode adicionar a notação @SessionScope, que vai te ajudar a manter os dados entre as páginas, enquanto você estiver trabalhando nelas.
Creio que assim funcione ;)
FacesContext.getCurrentInstance().getExternalContext()
.redirect("suaPagina");GOSTEI 0
Amanda Brito
14/10/2012
[quote="MandicaBrito"]Você está tentando direcionar uma página para outra?
Pode usar o commandLink mesmo, contendo o caminho Pode criar um método na sua classe para redirecionar, algo assim:
E ai, chama esse método na sua tela.
No seu bean, você pode adicionar a notação @SessionScope, que vai te ajudar a manter os dados entre as páginas, enquanto você estiver trabalhando nelas.
Creio que assim funcione ;)
Amanda
tentei implementar essa cod que você passou mas ainda sim não deu. Veja:
FacesContext.getCurrentInstance().getExternalContext()
.redirect("suaPagina"); public void preparaEdicao(String editar){
try {
FacesContext.getCurrentInstance().getExternalContext().redirect("editar");
} catch (IOException ex) {
Logger.getLogger(DaoCliente.class.getName()).log(Level.SEVERE, null, ex);
}
}GOSTEI 0
Amanda Brito
14/10/2012
[quote="efraimgentil"]No caso próxima pagina mantendo os dados da anterior não é ? , esta usando apenas JSF ?? ou esta utilizando (PRIME ou RICH)Faces também ?
efraimgentil estou usando JSF junto com PRIME, irei precisa enviar os dados da pagina anterior, no caso uma pagina onde listo as pessoas e os dados correspondentes as mesmas, para uma pagina onde eu irei editar a pessoa e os seus dados. Ex:
Laender >Editar.
Juca > Editar
Pedro > Editar
Envio para a pag de edição os dados da pessoa já dispostos para serem editados.
GOSTEI 0
Davi Costa
14/10/2012
Mas consegue redirecionar para outra página? Já tentou colocar o escopo do seu managedBean para sessão, só para testar?
abcs
GOSTEI 0
Davi Costa
14/10/2012
[quote="davi.costa"]Mas consegue redirecionar para outra página? Já tentou colocar o escopo do seu managedBean para sessão, só para testar?
abcs
Meu bean já está em sessão. Não estou conseguindo é mudar de uma pag para outra
GOSTEI 0
Davi Costa
14/10/2012
Qual versão do jsf?
abcs
GOSTEI 0
Davi Costa
14/10/2012
[quote="davi.costa"]Qual versão do jsf?
abcs
JSF 2.1.
GOSTEI 0
Amanda Brito
14/10/2012
Implementei assim uma vez, para o mesmo cenário que o seu, e funcionou para mim. Poderia postar sua página? Só para ver como está.
E dá algum tipo de exceção quando você tenta mudar a página? Reparei que ali, onde você coloca o nome da sua, está sem a extensão, tipo: minhaPagina.jsf / minhaPagina.xhtml, etc. Também deve-se por a extensão da página.
Outra coisa, já que está usando jsf, está usando o faces para acessar as páginas? Tipo: /faces/pagina.jsf . . . acho que isso também pode fazer alguma diferença.
GOSTEI 0
Efraim Filho
14/10/2012
Verificou se o endereço que está tentando redirecionar é valido ??
pode postar também o seu web.xml
GOSTEI 0
Efraim Filho
14/10/2012
[quote="MandicaBrito"]Implementei assim uma vez, para o mesmo cenário que o seu, e funcionou para mim. Poderia postar sua página? Só para ver como está.
E dá algum tipo de exceção quando você tenta mudar a página? Reparei que ali, onde você coloca o nome da sua, está sem a extensão, tipo: minhaPagina.jsf / minhaPagina.xhtml, etc. Também deve-se por a extensão da página.
Outra coisa, já que está usando jsf, está usando o faces para acessar as páginas? Tipo: /faces/pagina.jsf . . . acho que isso também pode fazer alguma diferença.
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<p:panelGrid columns="2">
<h:form>
<h:outputText value="id"/>
<h:inputText value="#{daoCliente.seleciona.id}"/>
<h:outputText value="cliente"/>
<h:inputText value="#{daoCliente.seleciona.nome}"/>
<h:outputText value="lista"/>
<p:dataList value="#{daoCliente.list()}" var="opicoes">
Id:#{opicoes.id} Nome:#{opicoes.nome} Idade:#{opicoes.idade} <h:commandLink actionListener="#{daoCliente.update}" value="Editar" />
</p:dataList>
<br />
<h:commandLink actionListener="#{daoCliente.save()}" value="Salvar" />
<br />
<h:commandLink actionListener="#{daoCliente.exibirLista()}" value="Listar" />
<br />
</h:form>
</p:panelGrid>
Hello from Facelets
</h:body>
</html>
package Dao;
import Model.Cliente;
import Util.HibernateUtil;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.hibernate.Session;
import org.hibernate.Transaction;
/**
*
* @author LAENDER
*/
@ManagedBean(name = "daoCliente")
@SessionScoped
public class DaoCliente implements Serializable{
public Cliente recursos;
Session s = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction t;
public Cliente getSeleciona(){
if(recursos == null){
recursos = new Cliente();
// item = - 1;
}
return recursos;
}
public String save(){
Session s = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction t = s.beginTransaction();
s.save(recursos);
t.commit();
s.close();
return "Create";
}
public String update(){
Session s = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction t = s.beginTransaction();
s.update(recursos);
t.commit();
s.close();
return "editar.xhtml";
}
public Cliente getCliente(int id){
Session s = HibernateUtil.getSessionFactory().getCurrentSession();
return (Cliente) s.load(Cliente.class, id);
}
public void remove(Cliente cliente){
Session s = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction t = s.beginTransaction();
s.delete(cliente);
t.commit();
s.close();
}
public List<Cliente> list() {
Session s = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction t = s.beginTransaction();
List lista = s.createQuery("from Cliente").list();
t.commit();
return lista;
}
public String exibirLista(){
List<Cliente> list = list();
String listando= "";
for(Cliente c : list){
listando += c.getId()+c.getNome()+c.getIdade();
}
return listando;
}
public String PreparaEdicao(){
try {
FacesContext.getCurrentInstance().getExternalContext().redirect("editar.xhtml");
} catch (IOException ex) {
Logger.getLogger(DaoCliente.class.getName()).log(Level.SEVERE, null, ex);
}
return "editar.xhtml";
}
}
GOSTEI 0