Ajax + JSP

1 resposta
P

Ola para todos,

Estou com um problema aqui.
Estou desenvolvendo um sistema web em java, uma pagina de cadastro mais complexa esta me tirando o sono. Tenho uma pagina onde os campos estão desabilitados e após o usuario inserir o cnpj e clicar em um botão de consulta, o sistema deve verificar o cnpj no BD e caso encontre trazer os dados e preencher os campos, deixando-os desabilitados. Caso não encontre, o sistema deve liberar os campos para preenchimeto pelo usuario.
Pesquisei e cheguei a solução do ajax. Meu sistema trabalha com struts, ajax e java.

Segue trecho do javascript da minha jsp que deveria pesquisar o cnpj, nem isso ele esta fazendo, eu quero pesquisar o cnpj e trazer o resultado populando os campos.

function habilitaPosConfirmacaoImportador() {

  if (verificador.noEnvio()) {
      var cnpjEncontrado;
      var url = 'manterProcuracao.do';
      var pars = "action=verificarImportador&cpfCnpjImportador=" + document.manterProcuracaoForm.cpfCnpjImportador.value +  "&cpfLogado=" + document.manterProcuracaoForm.cpfSolicitante.value;
      var ajaxRequest = new Ajax.Request(url, { method:'post', parameters: pars, onComplete: verificarImportador });
  }
}

segue metodo acionado na action:

public ActionForward verificarImportador(final ActionMapping mapping, final ActionForm actionForm, final HttpServletRequest request, final HttpServletResponse response)  throws Exception
		{
			Long cpfCnpjImportador  = (!StringUtils.isBlank(request.getParameter("cpfCnpjImportador")) ? Long.valueOf(request.getParameter("cpfCnpjImportador")) : 0);

			Importador importador = new Importador();
			
			importador = ImportadorFacade.obterImportador(cpfCnpjImportador);

			 final XmlBuilder builder = new XmlBuilder();
			 builder.addNode(ITEM);
			 generateTag(builder,"","==Selecione==");

			 generateTag(builder, importador);

			 builder.closeNode(ITEM);
			 request.setAttribute(XML, builder.toString());
			 
			 try {
				 final PrintWriter pWriter = response.getWriter();
				 pWriter.write(builder.toString());
			 } catch (IOException e) {
				 log.fatal("Erro ao gerar a combo de Disciplina", e);
				 throw new ApplicationException(EXECUCAO_ERROAJAXCOMBO);
			 }
			 return null;
		 }

Alguém entendeu e pode me ajudar?

Aguardo o auxilio de voces, obrigado.

1 Resposta

alves.Felipe
cara.. vc pode usar Jquery.. acho que é mais simples... esses dias fiz um teste simples... jsp:
<script src="jquery-1.5.js"></script>
    
    <script>
    jQuery.noConflict();
    jQuery(document).ready(function(){
    	jQuery("#getWeatherReport").click(function()
    			{
    				cidade = document.getElementById("placa").value;
    				alert(cidade);
    				jQuery.post("MeuServlet", {sPlaca:cidade}, function(data) 
    				{
    					alert(data);
    					jQuery("#weatherReport").html(data);
    				});
    			});
    	 });
    </script>
  </head>
  <body>
  <form >
       <input id="placa" name="placa" size="30" type="text" />
				<input id="getWeatherReport" name="getWeatherReport" type="button" value="Consultar Placa" />
				<div id="weatherReport" class="outputTextArea"></div>    	
    </form>
MeuServlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/plain");
		
		String placa=request.getParameter("sPlaca");
		
		try
		{
			PrintWriter out = response.getWriter();
			System.out.println("placa: "+placa);
			out.println("" + placa + "");
			out.flush();
			out.close();
		}
		catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
Criado 22 de fevereiro de 2011
Ultima resposta 22 de fev. de 2011
Respostas 1
Participantes 2