Auto complete Java (Spring MVC) + MySQL

2 respostas
ERVER

Bom dia pessoas,

Estou precisando fazer um auto-complete num campo de texto, e estou pesquisando sobre isso. Já achei algumas coisas com JQuery e php, alguém tem algum link que possa me ajudar a fazer o mesmo utilizando JQuery (ou AJAX) e Java?

Muito obrigado desde já.

Abraços.

2 Respostas

ERVER

Pessoas, segue o que tenho pronto, porém, não está funcionando:

HTML

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
    pageEncoding="ISO-8859-1"%>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
  
<script type="text/javascript">

$(function(){  
    $('#teste').autocomplete({        
        source:"/auto", minLength:1,delay:0  
          
    });  
      
});    

</script>
  
<title>Tela Principal</title>  
<link type="text/css" href="css/ui-lightness/jquery-ui-1.8.16.custom.css" rel="stylesheet" />  
        <script type="text/javascript" src="<c:url value='/resources/js/jquery.js' />"> </script>  
        <script type="text/javascript" src="<c:url value='/resources/js/jqueryui.js' />" ></script>  
</head>  
<body>  
      
      
      
    <div class="ui-widget">  
        <label for="myAutocomplete">Linguagens:</label>  
        <input type="text" id="teste" />  
    </div>  
  
</body>  
</html>

Controller

package br.gov.sp.mococa.controllers;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class AutoCompleteController {
	
	@RequestMapping(value = "teste-auto-complete", method = RequestMethod.GET)
	public String carregarPagina() {
		return "teste-auto-complete";
	}

	@RequestMapping(value = "auto")
	public void autoCompletar(HttpServletRequest request, HttpServletResponse response) {
		
		String termoProcurado = request.getParameter("termoProcurado");
		List<String> lista = new ArrayList<>();
		lista.add("Java");
		lista.add("Javascript");
		lista.add("Java + MySQL");
		
		List<String> valoresEncontrados = new ArrayList<>();
		
		if (termoProcurado.length() > 2) {
			for (int i = 0; i < lista.size(); i++) {
				if (lista.get(i).toLowerCase().startsWith(termoProcurado.toLowerCase())) {
					valoresEncontrados.add(lista.get(i));
					System.out.println(valoresEncontrados.get(i));
				}
			}
		}
		
		for (int i = 0; i < valoresEncontrados.size(); i++) {
			try {
				response.getWriter().write(valoresEncontrados.get(i));
				response.getWriter().flush();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
		
	}
	
}

Reparem que na linha 22 do Controller, está mapeando as requisições a "auto", que é passada como a source do jquery na view na linha 12.

Porém, quando chamo a página e digito, não exibe nada no campo de texto teste. Dei um System.out.println() na linha 37 do Controller, mas também não tá exibindo nada.

O que estou fazendo de errado?

Quem puder ajudar, agradeço muito! Abraços!

ERVER

Ninguem?

Criado 7 de janeiro de 2013
Ultima resposta 7 de jan. de 2013
Respostas 2
Participantes 1