selectOneMenu + jsf

2 respostas
Renato_Wilder

Ola a todos minha duvida é a seguinte tenho os seguintes métodos na DAO.

public ArrayList<Nome_Database> getNomeDB() throws SQLException, NamingException, ClassNotFoundException {
        con = H2_Connection.getConexao();
        ArrayList<Nome_Database> ndb = new ArrayList<>();
        ResultSet rs;
        try {
            pstm = con.prepareStatement("SELECT TABLE_NAME FROM information_schema.tables WHERE table_schema = 'TABELAS_INFO'");
            rs = pstm.executeQuery();
            while (rs.next()) {
                Nome_Database d_name = new Nome_Database();
                d_name.setNomeDB(rs.getString("TABLE_NAME"));

                ndb.add(d_name);
            }

            return ndb;
        } catch (JdbcSQLException e) {
            e.printStackTrace();
            return null;
        } catch (SQLException ex) {
            ex.printStackTrace();
            return null;
        }
    }

    public ArrayList<Empresa> getCaminhoBanco(Nome_Database nomedb) throws SQLException, NamingException, ClassNotFoundException {
        
        con = H2_Connection.getConexao();
        ArrayList<Empresa> script = new ArrayList<>();
        ResultSet rs;
        try {
            pstm = con.prepareStatement("SELECT COLUMN_NAME FROM information_schema.columns WHERE table_name = '"+nomedb.getNomeDB()+"'");
            rs = pstm.executeQuery();
            while (rs.next()) {
                Empresa caminho = new Empresa();
                caminho.setEmpresa(rs.getString("COLUMN_NAME"));

                script.add(caminho);
            }

            return script;
        } catch (JdbcSQLException e) {
            e.printStackTrace();
            return null;
        } catch (SQLException ex) {
            ex.printStackTrace();
            
            return null;
        }
    }

o meu bean

public ArrayList<Nome_Database> selectedNomeDB_CB() throws SQLException, NamingException, ClassNotFoundException {
              
        return dao.getNomeDB();
    }

 public ArrayList<DataBase> selectedCaminhoDB_CB() throws SQLException, NamingException, ClassNotFoundException {

        return dao.getCaminhoDB();
    }

e na minha tela jsf:

<h:selectOneMenu id="base" value="#{nome_Database.nomeDB}" valueChangeListener="#{scriptControle.selectedCaminhoBanco_CB()}">
                                
                                <f:selectItem itemLabel="selecione" itemValue=""/>
                                <f:selectItems  value="#{scriptControle.selectedNomeDB_CB()}" /> 
                                <f:ajax render="empresa" event="change"  />


                            </h:selectOneMenu>

                            &nbsp;&nbsp;Selecione a Empresa:&nbsp;&nbsp; 
                            <h:selectOneMenu id="empresa" value="#{scriptExec.selectedEmpresa}" valueChangeListener="#{scriptControle.selectedCaminhoDB_CB()}" >
                                      
                                <f:selectItem itemLabel="selecione" itemValue=""/>
                                <f:selectItems value="#{scriptControle.selectedCaminhoBanco_CB()}" />
                                <f:ajax render="database" event="change"/>  

                            </h:selectOneMenu>

no meu primeiro selectOneMenu aparece os nomes das bases da DAO getNomeDB() , meu problema é quero que quando eu selecionar um valor no primeiro box ele passe o valor para o parâmetro da minha DAO getCaminhoBanco() e depois atualize o segundo selectOneMenu, se alguem puder me ajudar fico grato ja tentei buscar em vários tópicos mas nao encontrei nada nesse caminho que estou

2 Respostas

alexfe

Neste link AQUI tem um projeto em JSF ótimo.

Renato_Wilder

Obrigado mas necessito de uma solução para o código acima esse do seu link é pago

Criado 18 de agosto de 2016
Ultima resposta 18 de ago. de 2016
Respostas 2
Participantes 2