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();
}