Как правильно создать массив дат в JavaScript весной?

#javascript #arrays #spring #date #spring-mvc

#javascript #массивы #весна #Дата #spring-mvc

Вопрос:

У меня есть веб-приложение Spring Web MVC, где мне нужно получить массив JavaScript, заполненный java.util.Даты, которые хранятся в ArrayList, доступны из веб-приложения с ${cust.dates} помощью . Как мне правильно инициализировать массив в веб-приложении?

Спасибо.

Комментарии:

1. Массив JavaScript , заполненный java.util . Даты?

2. Ну, естественно, java.util. Даты должны быть преобразованы в даты JS.

3. Как мне использовать преобразование java.util. Дата на дату Javascript? Вы имеете в виду какое-то текстовое представление, которое Javascript умеет читать?

4. Я прочитал заголовок перед вопросом и подумал: «Просто проверьте, является ли месяц мартом, апрелем или маем… что может быть проще?»

5. @николас. хаушильд Точно, полезное текстовое представление. var array = new Array(${cust.dates}); просто дает мне массив символов дат в непригодном для использования формате.

Ответ №1:

Spring выполняется на стороне сервера, а JavaScript выполняется на стороне клиента. С точки зрения Spring, JavaScript — это просто текст, который необходимо сгенерировать. И этот текст должен представлять действительный исходный код JavaScript.

Таким образом, исходный код JavaScript, который создает массив дат, может быть сгенерирован следующим образом:

 var dateArray = [];
<c:forEach var="javaDate" items="${cust.dates}">
    dateArray.push(new Date(${javaDate.time}));
</c:forEach>
  

Это сгенерирует следующий код JavaScript:

 var dateArray = [];
dateArray.push(new Date(65987985);
dateArray.push(new Date(98654654);
// ...
  

с числовыми аргументами, представляющими собой количество миллисекунд с момента начала эпохи, что одинаково в Java и JavaScript.