Автозаполнение jQuery не работает с Spring MVC

0

Вот мой фрагмент jsp

<form:form>    
<form:input path = "state"  id = "state"/>
</form:form>
<script>
$(document).ready(function() { 
    $("#state").autocomplete({         
        source: '${pageContext. request. contextPath}/getStatelist.htm'    
        }); 
});
</script>

Вот код контроллеров, который должен возвращать список состояний

@RequestMapping(value = "/getStatelist.htm", method = RequestMethod.GET, headers = "Accept=*/*")
    public @ResponseBody List<String> getStateList(@RequestParam("term") String query) {

          ApplicationContext context = 
                     new ClassPathXmlApplicationContext("Beans.xml");

          MasterJDBCTemplate dao = 
                  (MasterJDBCTemplate)context.getBean("masterJDBCTemplate");
           System.out.println(query);
           System.out.println("Controller called");

           List<String> fans = dao.getStateList(query);

           return fans;
    }

После запуска кода и ввода текста в текстовое поле контроллер вызывается, и я получаю правильные результаты, напечатанные на консоли. Пример прогона показан ниже.

g
Controller called
select state_desc from mst_state where state_desc like 'G%'
[GUJRAT, GOA]
gu
Controller called
select state_desc from mst_state where state_desc like 'GU%'
[GUJRAT]
guj
Controller called
select state_desc from mst_state where state_desc like 'GUJ%'
[GUJRAT]

Однако я не вижу ничего на лицевой стороне. Что мне не хватает? Что может быть причиной??

Теги:
spring-mvc

1 ответ

0

Согласно документации jQuery UI, возвращенные данные из службы REST должны быть JSON.

См. Http://api.jqueryui.com/autocomplete/#option-source

Чтобы учесть это, вместо указания атрибута Accept Header из "*/*" (т.е. headers = "Accept = */*") укажите "application/json" (т.е. headers = "Accept = application/json")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню