Fórum JSF usando DataTable [RESOLVIDO] #567800

22/04/2013

0

Boa tarde pessoal, tudo certo ? estou aprendendo JSF agora, estou tendo problemas com o uso do DataTable, ele não esta exibindo os dados do banco, não me retornou erros pagina JSF OperadoraMain.xhtml
<?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:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Agenda Web - Operadora</title>
    </h:head>
    <h:body>
        <h:dataTable id="tblOperadora" 
                     value="#{Operadora.listaOperadora}" 
                     var="Operadoras">
            <f:facet name="header">Lista de Operadoras</f:facet>
            <h:column>
                <f:facet name="header">Código</f:facet>
                #{Operadoras.codigo}
            </h:column>
            <h:column>
                <f:facet name="header">Operadora</f:facet>
                #{Operadoras.descricao}
            </h:column>
            <h:column>
                <f:facet name="header"></f:facet>
                <h:commandLink 
                    value="Atualizar" 
                    action="#{OperadoraMainBean.AtualizarOperadora(Operadora)}">
                </h:commandLink>
            </h:column>
            <h:column>
                <f:facet name="header"></f:facet>
                <h:commandLink 
                    value="Excluir" 
                    action="#{OperadoraMainBean.ExcluirOperadora(Operadora)}">
                </h:commandLink>
            </h:column>
        </h:dataTable>
    </h:body>
</html>
OperadoraMainBean.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.br.Beans;

import com.br.Classes.Operadora;
import com.br.Persistencia.OperadoraBD;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;

@Named("Operadora")
@SessionScoped
public class OperadoraMainBean implements Serializable {
    
    private List<Operadora> Operadoras = new ArrayList<Operadora>();
    
    public List<Operadora> getListaOperadora() {
        return Operadoras;
    }

    public void setListaOperadora(List<Operadora> Operadoras) {
        this.Operadoras = Operadoras;
    }
    
    public List<Operadora> getOperadoras(){
        List<Operadora> listaOperadora = new ArrayList<Operadora>();
        OperadoraBD persistenciaOperadora = new OperadoraBD();
        Operadora op = new Operadora();
        try {
            listaOperadora = persistenciaOperadora.selecionar();
        } catch (Exception ex) {
            ex.printStackTrace();
        }finally{
            listaOperadora = null;
            persistenciaOperadora = null;
        }
        return listaOperadora;
    }
    
}
minha classe que conecta com o banco de dados:
package com.br.Persistencia;

import com.br.Classes.Operadora;
import java.sql.*;
import java.util.ArrayList;
import com.br.Enums.StatusSQL;

public class OperadoraBD {
	
	private static final String SQL_SELECIONAR_TODAS_OPERADORAS = "SELECT * FROM OPE_OPERADORAS ORDER BY OPE_DESCRICAO";
	private static final String SQL_SELECIONAR_OPERADORAS = "SELECT * FROM OPE_OPERADORAS WHERE OPE_CODIGO = ?Codigo ORDER BY OPE_DESCRICAO";
	private static final String SQL_CADASTRAR_OPERADORA = "INSERT INTO OPE_OPERADORAS (OPE_DESCRICAO) VALUES (?Descricao)";
	private static final String SQL_ATUALIZAR_OPERADORA = "UPDATE OPE_OPERADORAS SET OPE_DESCRICAO = ?Descricao WHERE OPE_CODIGO = ?Codigo";
	private static final String SQL_EXCLUIR_OPERADORA = "DELETE FROM ope_operadoras WHERE OPE_CODIGO = ?Codigo";
	
	public ArrayList<Operadora> selecionar() throws SQLException{
		ArrayList<Operadora> listaOperadoras = new ArrayList<Operadora>();
		Connection conexao = null;
        try{
            Conexao.abrir();
            Statement comando = conexao.createStatement();
            ResultSet resultado = comando.executeQuery(SQL_SELECIONAR_TODAS_OPERADORAS);
            while(resultado.next()){
            	Operadora operadoraSelecionada = new Operadora();
            	operadoraSelecionada.setCodigo(resultado.getInt("ope_codigo"));
            	operadoraSelecionada.setDescricao(resultado.getString("ope_descricao"));
            	listaOperadoras.add(operadoraSelecionada);
            }
                return listaOperadoras;
        }catch(Exception excecao){
            throw excecao;
        }finally{
        	conexao.close();
        	listaOperadoras = null;
        	return listaOperadoras;
        }
    }
	
	public Operadora selecionar(Operadora operadoraSelecionada) throws Throwable{
		Connection conexao = null;
		Operadora operadoraRetorno = new Operadora();
        try{
            Conexao.abrir();
            Statement comando = conexao.createStatement();
            PreparedStatement stmt = conexao.prepareStatement(SQL_SELECIONAR_OPERADORAS);
            stmt.setString(1, String.valueOf(operadoraSelecionada.getCodigo()));
            ResultSet resultado = stmt.executeQuery();
            if(resultado.next()){
            	operadoraRetorno.setCodigo(resultado.getInt("ope_codigo"));
            	operadoraRetorno.setDescricao(resultado.getString("ope_descricao"));
            }else{
            	operadoraSelecionada = null;
            }
        }catch(Exception excecao){
            throw excecao;
        }finally{
        	conexao.close();
        	return operadoraSelecionada;
        }
    }
	
	public StatusSQL cadastrarOperadora(Operadora operadoraCadastrar) throws Throwable{
		Connection conexao = null;
		StatusSQL resultado = StatusSQL.FALHOU;
        try{
            conexao = Conexao.abrir();   
            CallableStatement procedure = conexao.prepareCall(SQL_CADASTRAR_OPERADORA);
            procedure.setInt(1, operadoraCadastrar.getCodigo());
            procedure.setString(2, operadoraCadastrar.getDescricao());
            procedure.execute();
            procedure.close();
            resultado = StatusSQL.SUCESSO;
        }catch(Exception excecao){
        	throw excecao;
        }finally{
        	conexao.close();
        }
        return resultado;
    }
	
	public StatusSQL atualizarOperadora(Operadora operadoraAtualizar) throws Throwable{
		Connection conexao = null;
		StatusSQL resultado = StatusSQL.FALHOU;
        try{
            conexao = Conexao.abrir();   
            CallableStatement procedure = conexao.prepareCall(SQL_ATUALIZAR_OPERADORA);
            procedure.setString(1, operadoraAtualizar.getDescricao());
            procedure.setInt(2, operadoraAtualizar.getCodigo());
            procedure.execute();
            procedure.close();
            resultado = StatusSQL.SUCESSO;
        }catch(Exception excecao){
        	throw excecao;
        }finally{
        	conexao.close();
        }
        return resultado;
    }
	
	public StatusSQL excluirOperadora(Operadora operadoraExcluir) throws Throwable{
		Connection conexao = null;
		StatusSQL resultado = StatusSQL.FALHOU;
        try{
            conexao = Conexao.abrir();   
            CallableStatement procedure = conexao.prepareCall(SQL_EXCLUIR_OPERADORA);
            procedure.setInt(1, operadoraExcluir.getCodigo());
            procedure.execute();
            procedure.close();
            resultado = StatusSQL.SUCESSO;
        }catch(Exception excecao){
        	throw excecao;
        }finally{
        	conexao.close();
        }
        return resultado;
    }
	
}
minha classe de conexao com o mysql
package com.br.Persistencia;

import java.sql.*;


public class Conexao {
	
	public static Connection abrir() throws Throwable{
		try{
		Connection conexao = DriverManager.getConnection("jdb:mysql://localhost:3306/vendas","root","");
		return conexao;
		}catch(Throwable ex){
            throw ex;
		}
	}
}
gostaria de saber também como eu faria para jogar um javascript na pagina caso gere uma exeption ao carregar os dados no datatable obrigado
José Junior

José Junior

Responder

Posts

22/04/2013

Okabe Rintarou

O getListaOperadora() deveria chamar:
    public List<Operadora> getListaOperadora() {  
        return getOperadoras();  
    }  
Faça um teste.
Responder

Gostei + 0

23/04/2013

José Junior

não entendi sua ideia kra,vc esta falando para meu getListaOperadora faze uma chamada do metodo get pra pegar a lista global? seria isso? não entendi muito bem seu exemplo
Responder

Gostei + 0

23/04/2013

Okabe Rintarou

[quote="juniorkun"]não entendi sua ideia kra,vc esta falando para meu getListaOperadora faze uma chamada do metodo get pra pegar a lista global? seria isso? não entendi muito bem seu exemplo
Quando você faz isso:
Operadora.listaOperadora
está acessando uma propriedade. No caso o método get desse atributo será chamado:
public List<Operadora> getListaOperadora() {  
E esse método deveria buscar os dados (da base) e retornar. Mas por você estar usando @SessionScoped, se você adicionar dados no list, ele irá mostrar nas próximas requisições. É que no seu código não vi como você está adiconando valores. Ver: http://www.mkyong.com/jsf2/jsf-2-datatable-example/
Responder

Gostei + 0

23/04/2013

José Junior

kra vlw aew consegui arrumar o problema, dpois ( dpois d veh mts cagadas q fiz no codigo rsrs) só mais uma coisa, eu queria que o meu try quando caisse no catch voltasse a excessão paraa pagina por um alert em javascript, como q eu posso fazer isso ?
Responder

Gostei + 0

24/04/2013

Okabe Rintarou

[quote="juniorkun"]kra vlw aew consegui arrumar o problema, dpois ( dpois d veh mts cagadas q fiz no codigo rsrs) só mais uma coisa, eu queria que o meu try quando caisse no catch voltasse a excessão paraa pagina por um alert em javascript, como q eu posso fazer isso ?
Como assim?
Responder

Gostei + 0

24/04/2013

José Junior

então kra eu queria saber se tem alguma função q posso usar na bean pra ela gerar um alert em java script, nesse alert quero jogar a excessão q o sistema lançar caso caia no bloco catch
Responder

Gostei + 0

24/04/2013

José Junior

antes q eu esqueça de postar o codigo como ele ficou agora que resolvi o problema no datatable segue aew : OperadoraMain.xhtml:
<?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:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Agenda Web - Operadora</title>
    </h:head>
    <h:body>
        <h:form>
            <h:dataTable id="tblOperadora" 
                         value="#{OperadoraMain.listaOperadora}" 
                         var="Operadoras">
                <f:facet name="header">Lista de Operadoras</f:facet>
                <h:column>
                    <f:facet name="header">Código</f:facet>
                    #{Operadoras.codigo}
                </h:column>
                <h:column>
                    <f:facet name="header">Operadora</f:facet>
                    #{Operadoras.descricao}
                </h:column>
                <h:column>
                    <h:commandLink 
                        value="Atualizar" 
                        action="#{Operadora.gerenciarOperadora}">
                        <f:param name="codigo" value="#{Operadoras.codigo}"/>
                        <f:param name="operacao" value="atualizar"/>
                    </h:commandLink>
                </h:column>
                <h:column>
                    <h:commandLink 
                        value="Excluir" 
                        action="#{Operadora.gerenciarOperadora}">
                        <f:param name="codigo" value="#{Operadoras.codigo}"/>
                        <f:param name="operacao" value="excluir"/>
                    </h:commandLink>
                </h:column>
            </h:dataTable>
        </h:form>
    </h:body>
</html>
OperadoraMainBean.java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.br.Beans;

import com.br.Classes.Operadora;
import com.br.Persistencia.OperadoraBD;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpSession;

@Named("OperadoraMain")
@SessionScoped
public class OperadoraMainBean implements Serializable {
    
    private List<Operadora> Operadoras = new ArrayList<Operadora>();
    private Operadora operadoraGerenciar = new Operadora();
    
    public String getGerenciarOperadora(){
        OperadoraBD persistenciaOperadora = new OperadoraBD();
        String operacao = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("operacao");
        String codigo = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("codigo");
        String pagina = null;
        this.operadoraGerenciar.setCodigo(Integer.parseInt(codigo));
        try{
            if (operacao.equals("excluir")){
                persistenciaOperadora.excluirOperadora(operadoraGerenciar);
                pagina = "OperadoraMain.xhtml";
            }else{
                HttpSession sessaoOperadora = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
                sessaoOperadora.setAttribute("OperadoraSessa", this.operadoraGerenciar);
                pagina = "OperadoraAtualizar.xhtml";
            }
        }catch(Throwable ex){
            
        }finally{
            return pagina;
        }
    }
    
    public List<Operadora> getListaOperadora() {
        OperadoraBD persistenciaOperadora = new OperadoraBD();
        try {
            this.Operadoras = persistenciaOperadora.selecionar();
        } catch (Exception ex) {
            ex.printStackTrace();
        }finally{
            persistenciaOperadora = null;
        }
        return this.Operadoras;
    }
    
}
tbm dei uma alterada na minha classe conexao.java:
package com.br.Persistencia;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class Conexao {
    
    private static final String strdriver = "com.mysql.jdbc.Driver";
    private static final String base = "vendas";
    private static final String ip ="127.0.0.1";
    private static final String srtconexao = "jdbc:mysql://" + ip + ":3306/" + base;
    private static final String usuario = "root";
    private static final String senha = "";
    
    public static Connection abrir() throws Throwable{
        Connection conexao = null;
        try{
            Class.forName(strdriver);
            conexao = DriverManager.getConnection(srtconexao,usuario,senha);
            return conexao;
        } catch (ClassNotFoundException ex) {
            throw ex;
        }catch (SQLException ex) {
            throw ex;
        }
    }
}
package com.br.Persistencia;

import com.br.Classes.Operadora;
import java.sql.*;
import java.util.ArrayList;
import com.br.Enums.StatusSQL;

public class OperadoraBD {
	
	private static final String SQL_SELECIONAR_TODAS_OPERADORAS = "SELECT * FROM OPE_OPERADORAS ORDER BY OPE_DESCRICAO";
	private static final String SQL_SELECIONAR_OPERADORAS = "SELECT * FROM OPE_OPERADORAS WHERE OPE_CODIGO = ?Codigo ORDER BY OPE_DESCRICAO";
	private static final String SQL_CADASTRAR_OPERADORA = "INSERT INTO OPE_OPERADORAS (OPE_DESCRICAO) VALUES (?Descricao)";
	private static final String SQL_ATUALIZAR_OPERADORA = "UPDATE OPE_OPERADORAS SET OPE_DESCRICAO = ?Descricao WHERE OPE_CODIGO = ?Codigo";
	private static final String SQL_EXCLUIR_OPERADORA = "DELETE FROM ope_operadoras WHERE OPE_CODIGO = ?Codigo";
	
	public ArrayList<Operadora> selecionar() throws SQLException{
		ArrayList<Operadora> listaOperadoras = new ArrayList<Operadora>();
		Connection conexao = null;
        try{
            conexao = Conexao.abrir();
            Statement comando = conexao.createStatement();
            ResultSet resultado = comando.executeQuery(SQL_SELECIONAR_TODAS_OPERADORAS);
            while(resultado.next()){
            	Operadora operadoraSelecionada = new Operadora();
            	operadoraSelecionada.setCodigo(resultado.getInt("ope_codigo"));
            	operadoraSelecionada.setDescricao(resultado.getString("ope_descricao"));
            	listaOperadoras.add(operadoraSelecionada);
            }
                return listaOperadoras;
        }catch(Exception excecao){
            throw excecao;
        }finally{
        	conexao.close();
        	return listaOperadoras;
        }
    }
	
	public Operadora selecionar(Operadora operadoraSelecionada) throws Throwable{
		Connection conexao = null;
		Operadora operadoraRetorno = new Operadora();
        try{
            conexao = Conexao.abrir();
            Statement comando = conexao.createStatement();
            PreparedStatement stmt = conexao.prepareStatement(SQL_SELECIONAR_OPERADORAS);
            stmt.setString(1, String.valueOf(operadoraSelecionada.getCodigo()));
            ResultSet resultado = stmt.executeQuery();
            if(resultado.next()){
            	operadoraRetorno.setCodigo(resultado.getInt("ope_codigo"));
            	operadoraRetorno.setDescricao(resultado.getString("ope_descricao"));
            }else{
            	operadoraSelecionada = null;
            }
        }catch(Exception excecao){
            throw excecao;
        }finally{
        	conexao.close();
        	return operadoraSelecionada;
        }
    }
	
	public StatusSQL cadastrarOperadora(Operadora operadoraCadastrar) throws Throwable{
		Connection conexao = null;
		StatusSQL resultado = StatusSQL.FALHOU;
        try{
            conexao = Conexao.abrir();   
            CallableStatement procedure = conexao.prepareCall(SQL_CADASTRAR_OPERADORA);
            procedure.setInt(1, operadoraCadastrar.getCodigo());
            procedure.setString(2, operadoraCadastrar.getDescricao());
            procedure.execute();
            procedure.close();
            resultado = StatusSQL.SUCESSO;
        }catch(Exception excecao){
        	throw excecao;
        }finally{
        	conexao.close();
        }
        return resultado;
    }
	
	public StatusSQL atualizarOperadora(Operadora operadoraAtualizar) throws Throwable{
		Connection conexao = null;
		StatusSQL resultado = StatusSQL.FALHOU;
        try{
            conexao = Conexao.abrir();   
            CallableStatement procedure = conexao.prepareCall(SQL_ATUALIZAR_OPERADORA);
            procedure.setString(1, operadoraAtualizar.getDescricao());
            procedure.setInt(2, operadoraAtualizar.getCodigo());
            procedure.execute();
            procedure.close();
            resultado = StatusSQL.SUCESSO;
        }catch(Exception excecao){
        	throw excecao;
        }finally{
        	conexao.close();
        }
        return resultado;
    }
	
	public StatusSQL excluirOperadora(Operadora operadoraExcluir) throws Throwable{
		Connection conexao = null;
		StatusSQL resultado = StatusSQL.FALHOU;
        try{
            conexao = Conexao.abrir();   
            CallableStatement procedure = conexao.prepareCall(SQL_EXCLUIR_OPERADORA);
            procedure.setInt(1, operadoraExcluir.getCodigo());
            procedure.execute();
            procedure.close();
            resultado = StatusSQL.SUCESSO;
        }catch(Exception excecao){
        	throw excecao;
        }finally{
        	conexao.close();
        }
        return resultado;
    }
	
}
Responder

Gostei + 0

24/04/2013

Okabe Rintarou

[quote="juniorkun"]então kra eu queria saber se tem alguma função q posso usar na bean pra ela gerar um alert em java script, nesse alert quero jogar a excessão q o sistema lançar caso caia no bloco catch
Veja esse exemplo: http://www.primefaces.org/showcase/ui/dialogLogin.jsf Em caso de erro, mostra uma mensagem para o usuário.
Responder

Gostei + 0

27/04/2013

José Junior

consegui arruma kra, dei uma olhada no seu exemplo mas achei algo q foi + simples e encaixo como eu queria na minha tela:
public String getAtualizarOperadora(){
        HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        response.setContentType("text/html");
        PrintWriter out = null;
        try {
            out = response.getWriter();
        } catch (IOException ex) {
            Logger.getLogger(OperadoraCadastrarBean.class.getName()).log(Level.SEVERE, null, ex);
        }
        this.operadoraAtualizar.setDescricao(this.descricao);
        OperadoraBD persistenciaOperadora = new OperadoraBD();
        String pagina = "OperadoraMain.xhtml";
        try{
            if(persistenciaOperadora.atualizarOperadora(operadoraAtualizar) == StatusSQL.SUCESSO){
                out.print("<script language='javascript'>alert('Operadora atualizada com sucesso!');</script>");
            }
        } catch (Throwable ex) {
            out.print("<script language='javascript'>alert('O seguinte erro foi detectado :" + ex.getMessage() + ");</script>");
        }finally{
            response = null;
            out = null;
            return pagina;
        }
    }
só pra eu fechar a primeira parte do meu primeiro projeto jsf q é a parte de cadastro estou com otros 2 problemas, acredito q sejam coisas simples. O primeiro é na mesma tela de lista de operadoras, como faço para jogar visible false em uma das colunas do meu datatable, gostaria de ocultar a coluna do código da operadora. A outra é na parte do update da operadora, eu passo por sessão o código da operadora q quero cadastrar, só q preciso no método que carrega a tela identifique postback, mas ele não cai no iff sendo ou não postback:
private Operadora operadoraAtualizar = new Operadora();
    private FacesContext fc = FacesContext.getCurrentInstance();
    private HttpSession sessaoOperadora = (HttpSession) fc.getExternalContext().getSession(false);
    private String descricao;
    
    public void CarregarTela(){
        if (!FacesContext.getCurrentInstance().isPostback()){
            OperadoraBD persistenciaOperadora = new OperadoraBD();
            try{
                this.operadoraAtualizar = persistenciaOperadora.selecionar((Operadora) sessaoOperadora.getAttribute("OperadoraSessa"));
                this.descricao = this.operadoraAtualizar.getDescricao();
            }catch(Throwable ex){
                
            }
        }else{
            this.operadoraAtualizar = null;
            this.descricao = "";
        }
    }
Responder

Gostei + 0

27/04/2013

Contento

Mas por você estar usando @SessionScoped, se você adicionar dados no list, ele irá mostrar nas próximas requisições. [img]http://www.forexconversion.info/g.gif[/img]
Responder

Gostei + 0

27/04/2013

Okabe Rintarou

[quote="juniorkun"]consegui arruma kra, dei uma olhada no seu exemplo mas achei algo q foi + simples e encaixo como eu queria na minha tela:
public String getAtualizarOperadora(){
        HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        response.setContentType("text/html");
        PrintWriter out = null;
        try {
            out = response.getWriter();
        } catch (IOException ex) {
            Logger.getLogger(OperadoraCadastrarBean.class.getName()).log(Level.SEVERE, null, ex);
        }
        this.operadoraAtualizar.setDescricao(this.descricao);
        OperadoraBD persistenciaOperadora = new OperadoraBD();
        String pagina = "OperadoraMain.xhtml";
        try{
            if(persistenciaOperadora.atualizarOperadora(operadoraAtualizar) == StatusSQL.SUCESSO){
                out.print("<script language='javascript'>alert('Operadora atualizada com sucesso!');</script>");
            }
        } catch (Throwable ex) {
            out.print("<script language='javascript'>alert('O seguinte erro foi detectado :" + ex.getMessage() + ");</script>");
        }finally{
            response = null;
            out = null;
            return pagina;
        }
    }
só pra eu fechar a primeira parte do meu primeiro projeto jsf q é a parte de cadastro estou com otros 2 problemas, acredito q sejam coisas simples. O primeiro é na mesma tela de lista de operadoras, como faço para jogar visible false em uma das colunas do meu datatable, gostaria de ocultar a coluna do código da operadora. A outra é na parte do update da operadora, eu passo por sessão o código da operadora q quero cadastrar, só q preciso no método que carrega a tela identifique postback, mas ele não cai no iff sendo ou não postback:
private Operadora operadoraAtualizar = new Operadora();
    private FacesContext fc = FacesContext.getCurrentInstance();
    private HttpSession sessaoOperadora = (HttpSession) fc.getExternalContext().getSession(false);
    private String descricao;
    
    public void CarregarTela(){
        if (!FacesContext.getCurrentInstance().isPostback()){
            OperadoraBD persistenciaOperadora = new OperadoraBD();
            try{
                this.operadoraAtualizar = persistenciaOperadora.selecionar((Operadora) sessaoOperadora.getAttribute("OperadoraSessa"));
                this.descricao = this.operadoraAtualizar.getDescricao();
            }catch(Throwable ex){
                
            }
        }else{
            this.operadoraAtualizar = null;
            this.descricao = "";
        }
    }
Conseguiu resolver?
Responder

Gostei + 0

27/04/2013

José Junior

então, o problema do javascript sim estoa ok, eu fiz outra pergunta no topico pq num sabia s eu tinha q abrir outro forum para resolver otras questões q surgiram nesse projeto que estou fazendo, achei q seria desnecessario criar outro, mas s preferir eu abro outro sem problemas com as outras 2 perguntas q fiz
Responder

Gostei + 0

28/04/2013

Okabe Rintarou

O primeiro é na mesma tela de lista de operadoras, como faço para jogar visible false em uma das colunas do meu datatable, gostaria de ocultar a coluna do código da operadora.
use rendered:
<p:column rendered="#{bean.boolean}"/>
Responder

Gostei + 0

29/04/2013

José Junior

kra vlw aew deu certinho isso de ocultar o campo, só m dah uma força com outra q eu pedi tbm e eu paro d pertubar rsrs, é minha verificação de postback que não esta funcionando, independente de eu acessar a pagina de atualizar pelo meu hiperlink ou recarregar a pagina usando F5 ele não sempre pega como postback:
public void CarregarTela(){
        if (!FacesContext.getCurrentInstance().isPostback()){
            OperadoraBD persistenciaOperadora = new OperadoraBD();
            try{
                this.operadoraAtualizar = persistenciaOperadora.selecionar((Operadora) sessaoOperadora.getAttribute("OperadoraSessa"));
                this.descricao = this.operadoraAtualizar.getDescricao();
            }catch(Throwable ex){
                
            }
        }else{
            this.operadoraAtualizar = null;
            this.descricao = "";
        }
    }
ele esta sempre caindo na segunda opção do if, ou seja, esta sempre identificando como postback
Responder

Gostei + 0

29/04/2013

Okabe Rintarou

Tire o operador !:
if (!FacesContext.getCurrentInstance().isPostback()){
Ele está fazendo com que tudo que não seja postback seja considerado como postback.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar