2015-07-16 3 views
0

Я пытаюсь заполнить массив Javascript внутри javascript-функций, используя JSTL. Моя цель состоит в том, чтобы сделать функцию завершения работы JQuery автоматически с моим веб-приложением, которое разработано с использованием Servlets и jsp. Оригинальная ссылка на авто JQuery completionis здесь - https://jqueryui.com/autocomplete/JQuery auto complete with JSP

Ниже мой код

index.jsp

<%@taglib prefix="c" uri= "http://java.sun.com/jsp/jstl/core" %> 
<!doctype html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>JQuery UI Autocomplete - Default functionality</title> 
     <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
     <script src="//code.jquery.com/jquery-1.10.2.js"></script> 
     <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
     <link rel="stylesheet" href="/resources/demos/style.css"> 
     <script> 
      $(function() { 
       var availableTags=[] ; 

       <c:forEach var="list" items="${requestScope['list']}"> 
        availableTags.push('${list.drug_name}'); 
       </c:forEach> 

       $("#tags").autocomplete({ 
        source: availableTags 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <form action="Combo"> 
      <div class="ui-widget"> 
       <label for="tags">Tags: </label> 
       <input name="selectBox" id="tags"> 
       <input type="submit"/> 
      </div> 
     </form> 


    </body> 
</html> 

Я звоню index.jsp из сервлета, как показано ниже.

List<Names> list=names.readNames(file);  

      request.setAttribute("list", list); 
      RequestDispatcher dispatcher=request.getRequestDispatcher("WEB-INF/jsp/Index.jsp");    
      dispatcher.forward(request, response); 

Здесь List<Names> list=names.readNames(file); возвращает боб Names. Names - это просто класс с сеттерами и getters fer одной переменной name, которая является типом String.

Однако я не смог этого добиться, потому что автозаполнение не работает таким образом. Скорее всего, из-за ошибки в вводе данных в массив. что здесь случилось?

+0

Откройте инструменты для разработчиков (F12) и войдите в консоль. Есть ли там ошибки? – alkis

+0

@alkis: Большое спасибо, возникла проблема «неперехваченного исключения: неожиданные строки». Я починил это. Просьба представить ваш комментарий в качестве ответа. –

+0

я сделал. спасибо – alkis

ответ

1

Открыть инструменты для разработчиков (F12) и перейти в консоль. Там будут ошибки.

0

использовать имя уага в качестве пункта вместо списка

<c:forEach var="item" items="${requestScope['list']}"> 
        availableTags.push('${item.drug_name}'); 
</c:forEach>