Carregar Dados do BD com Struts

1 resposta
D

Olá pessoa, estou com uma dúvida, tenho uma tela de cadastro, nesta tela tem o campo código, quando o usuario insere um código e tecla Tab é chamada uma action que trás o Revendedor com este código, os campos textos já são todos carregados automaticamente, o que eu não estou conseguindo fazer é selecionar no ComboBox(tag) o estado e a cidade, as cidades e estados no banco estão gravador o problema é mostrar isso na tela.

O mesmo acontece com o Radio button tb não muda na tela de acordo com o valor que esta no BD.

Tem como alterar o Index desses combo via Action?

Abaixo parte do fonte da página.

Action:

public class PessoasAction {
    private Pessoas pes;
    private Pfisicas fis;
    private Pjuridicas jur;
    private Produtos pro;
    private PesssoasProdutos ppr;
    private String rgIe;
    private String cpfCnpj;
    private String revendedor;
    private String uf = "AC";
    private int cidCod;
    private Vendedores rev;
    private PessoasDAO pesD;
    private CidadesDAO cidD;
    
    
    public PessoasAction(){
        pes = new Pessoas();
        fis = new Pfisicas();
        jur = new Pjuridicas();
        rev = new Vendedores();
        est = new ArrayList<Estados>();
        pesD = new PessoasDAO();
        cidD = new CidadesDAO();
    }
    
    public String saveOrUpdate(){
        Cidades cid = cidD.getCidadeByCod(cidCod);
        pes.setCidades(cid);
        savePessoa();
        if (pes.getPesVendedor().equals("S")){
            saveRevendedor();
        }else{
            
        }
        if (pes.getPesTipo()=='1'){
            savePfisica();
        }else{
            savePjuridica();
        }
        return "success";
    }
    
    public String consultar(){
        if (pes.getPesCodigo()!=null && pes.getPesCodigo()>0){
            pes = pesD.getPessoaByCod(pes.getPesCodigo());
            Cidades cid = pes.getCidades();
            Estados estado = cid.getEstados();
            uf = estado.getEstUf();
            cidCod = cid.getCidCodigo();
            if (pes.getPesTipo()=='1'){
                fis = pesD.getPFisicaByCod(pes.getPesCodigo());
                rgIe = fis.getFisRg();
                cpfCnpj = fis.getFisCpf();
            }else if (pes.getPesTipo()=='2'){
                jur = pesD.getPJuridicaByCod(pes.getPesCodigo());
                rgIe = jur.getJurInsestadual();
                cpfCnpj = jur.getJurCnpj();
            }
            rev = pesD.getRevendedorByCod(pes.getPesCodigo());
            pesD.fecharSession();
        }
        return "success";
    }
    
    private void savePessoa(){
        pes.setPesBairro(pes.getPesBairro().toUpperCase());
        pes.setPesEndereco(pes.getPesEndereco().toUpperCase());
        pes.setPesNome(pes.getPesNome().toUpperCase());
        pesD.savePessoa(pes);
        pesD.fecharSession();
    }
    
    private void saveRevendedor(){
        rev.setVenCodigo(pes.getPesCodigo());
        rev.setVenEmpresa(rev.getVenEmpresa().toUpperCase());
        pesD.saveRevendedor(rev);
        pesD.fecharSession();
    }
    
    private void savePfisica(){
        fis.setFisCodigo(pes.getPesCodigo());
        fis.setFisCpf(cpfCnpj);
        fis.setFisRg(rgIe);
        pesD.savePfisica(fis);
        pesD.fecharSession();
    }
    
    private void savePjuridica(){
        jur.setJurCodigo(pes.getPesCodigo());
        jur.setJurCnpj(cpfCnpj);
        jur.setJurInsestadual(rgIe);
        pesD.savePjuridica(jur);
        pesD.fecharSession();
    }


    //getters and setters
}

JSP:

<html>

    <head>
    </head>
    <body>
<form id="fCampos" name="user" action="gravaUsuario" method="post">
                <label id="lCodigo">Código: </label>
                <s:textfield id="txtCodigo" type="text" name="pes.pesCodigo" size="10" onblur="consultarAction()"/>
                 <div id="tpPessoa">    
                        <s:radio id="rTpPessoa" onclick="changeLabel(this)" label="Tipo de Pessoa" name="pes.pesTipo" list="#{'1':'Física','2':'Jurídica'}" value="1" />  
                </div>
                <label id="lNome">*Nome:</label>
                <s:textfield id="txtNome" type="text" name="pes.pesNome" maxlength="70" size="74"/>
                <input id="txtRevend" type="hidden" name="pes.pesVendedor" value="S" size="74"/>

                <label id="lCpf">CPF:</label>
                <s:textfield id="txtCpf" type="text" name="cpfCnpj" maxlength="14" size="20" onkeypress="Mascara('cpf', event, this)"/>

                <label id="lRg">RG:</label>
                <s:textfield id="txtRg" type="text" name="rgIe" maxlength="20" size="20"/>
                
                <label id="lEstado">Estado:</label>
                <select id="cbEstados" name="uf" onchange="carregaCidades()">
                </select>


                <label id="lCidade">*Cidade:</label>
                
                <select id="cbCidades" name="cidCod">
                </select>
               
            </form>
    </body>
</html>

função de consulta JS:

function consultarAction(){ var f = document.getElementById("fCampos"); f.action = "consultarRevendedor"; f.submit(); }

1 Resposta

D

Alguém? eu não tenho ideia de como fazer sou iniciante em desenvolvimento web, só preciso saber um caminho para resolver esse problema.

Criado 22 de setembro de 2011
Ultima resposta 22 de set. de 2011
Respostas 1
Participantes 1