Преобразовать arrayList в массив javascript

Я отправляю список массивов из файла java в файл .jsp.

Чтобы получить этот массив, я использовал следующий код

var words = 
        [
            <c:forEach begin="0" items="${requestScope.WordList}" var = "word">
                word,
             </c:forEach>
        ];

однако это не работает .. есть идеи, как это сделать?


person Abdelrahman Shoman    schedule 21.04.2013    source источник
comment
Я нигде не вижу вопросительного знака!   -  person AllTooSir    schedule 21.04.2013
comment
это не работает слишком обобщенно, пожалуйста, будьте более конкретными!   -  person AllTooSir    schedule 21.04.2013
comment
Я не думаю, что это хорошая практика - создавать массивы JSON таким образом. Просто используйте для этого стороннюю библиотеку. Такой подход может создать много проблем.   -  person ubik    schedule 21.04.2013
comment
возможный дубликат Преобразование Java ArrayList строк в JavaScript массив   -  person Jason C    schedule 22.03.2014


Ответы (1)


Возможное исправление (Плохое исправление):

var words = 
    [
        <c:forEach items="${requestScope.WordList}" var="word" 
         varStatus="status">
          "${word}"<c:if test="${not status.last}">,</c:if>
        </c:forEach>
    ];

ИЛИ

Преобразуйте строку Java ArrayList в строку JSON и используйте JSON.parse() для получения объекта Javascript.

person AllTooSir    schedule 21.04.2013
comment
Поскольку тип word, скорее всего, string, вам придется поставить кавычки вокруг ${word}. т.е. поместите "${word}", в c:forEach. Вторая проблема заключается в том, что у вас будет запятая в конце определения массива. - person user1983983; 21.04.2013
comment
нет, не работает для последней строки, она выдала ожидаемую ошибку; но нашел] - person Abdelrahman Shoman; 21.04.2013
comment
Запятая в конце подходит для большинства браузеров - person Kyle; 21.04.2013
comment
Не забудьте экранировать строку слов - person Kyle; 21.04.2013