Olá a todos,
é meu primeiro post no GUJ, muita das minhas duvidas foram tiradas aqui mas pesquisei em diversos lugares inclusive na documentação do Struts 2 e não achei solução…
Possuo uma base de + ou - 700.000 ceps com endereço completo, e pretendo utilizar essa base para para fazer um preenchimento automático do endereço logo após a inserção do cep pelo usuário. Eu sei fazer utilizando JEE padrão com utilizando Dojo para atualizar os campos via Ajax… O problema que no Struts 2 não consigo fazer o Bind e preencher os campos do endereço.
Aqui vai um exemplo do que eu quero fazerhttps://www.wintrade.com.br/Registration/ProspectCompanyWizard/BasicInformationStep.win
Simplifiquei o formulário para ficar mais fácil a visualização.
formulario.jsp
<s:form method="post" name="formCep">
<!--Ao perder o foco deve preencher o restante do endereço-->
<s:textfield label="CEP" name="num_cep" required="true" onblur=""/>
<s:textfield label="Logradouro" name="logradouro" required="true"/>
<s:textfield label="Bairro" name="bairro" required="true"/>
<s:textfield label="Cidade" name="cidade" required="true"/>
<s:submit value="Enviar"/>
</s:form>
CepAction.java
public class CepAction extends ActionSupport {
private static final long serialVersionUID = -574555897713965228L;
private String num_cep;
private String logradouro;
private String bairro;
private String cidade;
public String execute() throws Exception {
Endereco e;
BaseDeCepDAO base = new BaseDeCepDAO();
try{
e = base.buscaEndereco(this.num_cep); //retorna o objeto endereco
setNum_cep(e.getNumCep()); //seta os atributos da CepAction
setLogradouro(e.getLogradouro);
setBairro(e.getLogradouro);
setCidade(e.getCidade);
return SUCCESS;
}
catch(Exception e){
return ERROR;
}
}
/*-----Get/Set Omitidos--------*/
struts.xml
<package name="default" extends="struts-default">
<action name="cep" >
<result name="input">formulario.jsp</result>
<result name="error">erro.jsp</result>
<result>formulario.jsp</result>
</action>
</package >
A minha maior dificuldade e passar o valor para o textfield pois o struts nao aceita passar valor atraves de parametro value desse campo EX:
<s:textfield label="Bairro" name="bairro" value="%{bairro}"/>
<s:textfield label="Bairro" name="bairro" value="${param.bairro}"/>
tentei diversas formas mas não obtive sucesso.
Desde já agradeço a atenção e a ajuda,
Jeferson…