JSF usando DataTable [RESOLVIDO]

Java

22/04/2013

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

Curtidas 0

Respostas

Okabe Rintarou

Okabe Rintarou

22/04/2013

O getListaOperadora() deveria chamar:
    public List<Operadora> getListaOperadora() {  
        return getOperadoras();  
    }  
Faça um teste.
GOSTEI 0
José Junior

José Junior

22/04/2013

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
GOSTEI 0
Okabe Rintarou

Okabe Rintarou

22/04/2013

[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/
GOSTEI 0
José Junior

José Junior

22/04/2013

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 ?
GOSTEI 0
Okabe Rintarou

Okabe Rintarou

22/04/2013

[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?
GOSTEI 0
José Junior

José Junior

22/04/2013

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
GOSTEI 0
José Junior

José Junior

22/04/2013

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;
    }
	
}
GOSTEI 0
Okabe Rintarou

Okabe Rintarou

22/04/2013

[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.
GOSTEI 0
José Junior

José Junior

22/04/2013

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 = "";
        }
    }
GOSTEI 0
Contento

Contento

22/04/2013

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]
GOSTEI 0
Okabe Rintarou

Okabe Rintarou

22/04/2013

[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?
GOSTEI 0
José Junior

José Junior

22/04/2013

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
GOSTEI 0
Okabe Rintarou

Okabe Rintarou

22/04/2013

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}"/>
GOSTEI 0
José Junior

José Junior

22/04/2013

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
GOSTEI 0
Okabe Rintarou

Okabe Rintarou

22/04/2013

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

José Junior

22/04/2013

nossa q panelada huahuahauhauhauhauahuahuah, já to viagando aqui com isso, vlw a força e a paciencia kra, finalmente consegui deixa tudo certinho aki, finalmente resolvido rsrs, bendito sinal d negação
GOSTEI 0
Okabe Rintarou

Okabe Rintarou

22/04/2013

Show cara! Parabéns.
GOSTEI 0
POSTAR