Olá galera,
Estou com um problema, tenho uma pagina cadastraCliente.jsp nessa pagina tenho um que é populado pelo banco com cidades Ex. Porto Alegre, Rio de Janeiro etc…
Em minha estrutura MVC tenho um Comando para instanciar um novo objeto e setar os atributos do mesmo.
Ao recuperar e setar o atributo ele carrega somente a primeira String Ex. Porto Alegre ta retornando Porto, Rio de Janeiro retorna Rio…
objCandidato.setCidade(parametros.get(“selectCidade”)[0]);// Aqui está retornando somente a primeira String da Cidade…
Opa.
Eu já consigo imaginar seu problema, mas antes queria ver seu código pra ter certeza do que você está fazendo.
Por exemplo. Do que se trata parametros
Como vc está trabalhando com parametros ?
como é o objCandidato ?
EDIT porque eu tinha confundido seu projeto =p
M
marcianorott
Opa, abaixo segue minha classe que envia para o Banco o objetoCandidato com os atributados setados…
Valeu!
publicclassComandoInsereCandidatoextendsComandoAbstrato{publicObjectexecute(Map<String,String[]>parametros)throwsException{System.out.println("ComandoInsereCandidato");CandidatoobjCandidato=newCandidato();objCandidato.setNome(parametros.get("txtNome")[0]);objCandidato.setEmail(parametros.get("txtEmail")[0]);objCandidato.setFone(parametros.get("txtFone")[0]);objCandidato.setCpf(Long.parseLong(parametros.get("txtCpf")[0]));objCandidato.setTipo(parametros.get("txtTipo")[0]);objCandidato.setEndereco(parametros.get("txtEndereco")[0]);objCandidato.setCidade(parametros.get("txtCidade")[0]);objCandidato.setCep(parametros.get("txtCep")[0]);objCandidato.setUf(parametros.get("txtUf")[0]);objCandidato.setSenha(parametros.get("txtSenha")[0]);// insere o objeto no bancodao.connect();dao.insereCandidato(objCandidato);dao.disconnect();returntrue;}}
a.moraissoares
Amigo,
1 - Leia esse tópico antes. E seja bem vindo ao GUJ: LEIA
2 - O mais importante é: Como você está atribuindo valores ao Map parametros?
Enquanto vai lendo, eu leio seu código.
M
marcianorott
Valeu cara foi mals…da próxima vez já posto dentro dos padrões…
M
marcianorott
Cara,
Os parametros vem dos campos txt e select da pagina JSP.
Tipo: Tudo que recebo através de input do tipo text vem normal. O problema é quando recebo de algum select.
a.moraissoares
Dá pra Editar seu post. Clica em EDIT e conserta, pois sua dúvida pode ser a dúvida de outros que acessarem seu post, e vai ficar mais fácil pra ler seu código né.
Vamos lá, como está inserindo no Map paramentros? Acho que aí está a raiz do seu problema.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><%@pageimport="java.util.ArrayList"%><%@pageimport="com.senacrs.locadora.negocio.Candidato"%><htmlxmlns="http://www.w3.org/1999/xhtml"><head><title></title><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><scriptlanguage="javascript"type="text/javascript"src="niceforms.js"></script><linkrel="stylesheet"type="text/css"media="all"href="niceforms-default.css"/></head><%Candidatocandidato=(Candidato)request.getAttribute("resultado");%><body><divid="container"><formname='formulario'action='Controller'method="get"class="niceform"onSubmit="return validaFormCandidato()"><fieldset><legend>Cadastro de novo Usuário/Candidato</legend><dl><dt><labelfor="nome"><inputtype='hidden'name ='do'value='insereCandidato'/><inputtype='hidden'name ='txtTipo'value='C'/><divalign="right"><strong>Nome:(*)</strong></div></label></dt><dd><inputtype="text"name='txtNome'id="nome"size="32"maxlength="128"/></dd></dl><dl><dt><labelfor="email"><divalign="right"><strong>Email:(*)</strong></div></label></dt><dd><inputtype="text"name='txtEmail'id="email"size="32"maxlength="128"onkeyup="checkEmail(this);"/></dd></dl><dl><dt><labelfor="cpf"><divalign="right"><strong>Cpf:(*)</strong></div></label></dt><dd><inputtype="text"name='txtCpf'id="cpf"size="32"maxlength="128"/></dd></dl><dl><dt><labelfor="fone"><divalign="right"><strong>Fone:</strong></div></label></dt><dd><inputtype="text"name='txtFone'id="fone"size="32"maxlength="128"/></dd></dl><dl><dt><labelfor="endereco"><divalign="right"><strong>Endereço:(*)</strong></div></label></dt><dd><inputtype="text"name='txtEndereco'id="email"size="32"maxlength="128"/></dd></dl><dl><dt><labelfor="cidade"><divalign="right"><strong>Cidade:</strong></div></label></dt><dd><selectname='txtCidade'><%for(StringsCidade:candidato.getListaCidades()){%><optionvalue=<%out.print(sCidade);%>><%out.print(sCidade);%></option><%}%></select></dd></dl><dl><dt><labelfor="cep"><divalign="right"><strong>Cep:</strong></div></label></dt><dd><inputtype="text"name='txtCep'id="cep"size="32"maxlength="128"/></dd></dl><dl><dt><labelfor="uf"><divalign="right"><strong>Estado:</strong></div></label></dt><dd><selectname='txtUf'><optionvalue="IN">Selecione</option><optionvalue="RS">RS</option><optionvalue="SP">SP</option><optionvalue="MG">MG</option></select></dd></dl><dl><dt><labelfor="senha"><divalign="right"><strong>Senha(*)</strong></div></label></dt><dd><inputtype="password"name='txtSenha'id="senha"size="32"maxlength="128"/></dd></dl></fieldset><fieldsetclass="action"><inputtype="submit"name="btnEnviar"id="button"value="Cadastrar"/></fieldset></form></div></body></html>
O action desse form me leva para meu Controlador que por sua vez faz executar o comando abaixo:
importjava.util.Map;importcom.senacrs.locadora.negocio.Candidato;publicclassComandoInsereCandidatoextendsComandoAbstrato{publicObjectexecute(Map<String,String[]>parametros)throwsException{System.out.println("ComandoInsereCandidato");CandidatoobjCandidato=newCandidato();objCandidato.setNome(parametros.get("txtNome")[0]);objCandidato.setEmail(parametros.get("txtEmail")[0]);objCandidato.setFone(parametros.get("txtFone")[0]);objCandidato.setCpf(Long.parseLong(parametros.get("txtCpf")[0]));objCandidato.setTipo(parametros.get("txtTipo")[0]);objCandidato.setEndereco(parametros.get("txtEndereco")[0]);objCandidato.setCidade(parametros.get("txtCidade")[0]);objCandidato.setCep(parametros.get("txtCep")[0]);objCandidato.setUf(parametros.get("txtUf")[0]);objCandidato.setSenha(parametros.get("txtSenha")[0]);// insere o objeto no bancodao.connect();dao.insereCandidato(objCandidato);dao.disconnect();returntrue;}}
Essa classe extende comando abastrato abaixo:
importjava.util.Map;importcom.senacrs.locadora.banco.DAOFactory;importcom.senacrs.locadora.banco.IBanco;publicabstractclassComandoAbstrato{// pagina que será apresentada quando um comando for bem executadoprivateStringpaginaSucesso;//atributo DAO )data access object)// valido nas subclassesprotectedIBancodao;/** * este método abstrato padroniza as chamadas que o controlaador * fara para os comandos concretos */publicabstractObjectexecute(Map<String,String[]>parametros)throwsException;// contrutorpublicComandoAbstrato(){DAOFactoryfabrica=DAOFactory.selecionaFonte(DAOFactory.MYSQL);this.dao=fabrica.criaDAO();}publicStringgetPaginaSucesso(){returnpaginaSucesso;}publicvoidsetPaginaSucesso(StringpaginaSucesso){this.paginaSucesso=paginaSucesso;}}
a.moraissoares
Você ainda não postou como vc está inserindo os valores no Map parametros.
Vc só mostrou os parametros.get(“chaves”)
Onde vc dá os parametros.set() ?
Observe bem. Se no select o texto Porto Alegre aparece completo, até aí tudo bem. Quem pega esses valores do select? o Map parametros? Como está sendo inserido?
Eu ainda não consegui enxergar seu problema, mas acho que está nessa hora aí, de setar os valores no Map.