MVC Spring Model - динамически доступный индекс списка атрибутов
У меня есть вопрос относительно того, как динамически получить доступ к индексу из списка атрибутов модели. В моем коде у меня есть некоторый JavaScript, который читает значение из модели. Модель имеет атрибут, который потенциально является списком.
document.getElementById("phoneNumberRPhone").value = "${model.people[index].phoneNumber.number}";
Здесь вы можете видеть, что я пытаюсь установить значение javascript для числа, полученного из модели, в которой у меня может быть несколько человек. Индекс - это моя динамическая ценность. Это прекрасно работает, если я специально указываю model.people[0] или model.people[1], но если я пытаюсь установить число для индексации и использовать индекс динамически, это больше не работает.
Я был бы очень благодарен за любую помощь, которую кто-либо может оказать в этом. Я уверен, что это либо просто ошибка пользователя, либо неправильное использование синтаксиса.
1 ответ
По-видимому ${index}
вообще не существует в области JSP/EL в тот момент, когда JSP/EL должен напечатать этот фрагмент кода JS. Например, это будет работать только на вас (хотя такой подход весьма сомнителен):
<c:forEach items="${model.people}" varStatus="loop">
document.getElementById("phoneNumberRPhone").value = "${model.people[loop.index].phoneNumber.number}";
</c:forEach>
Имейте в виду, однако, что JSP является просто генератором HTML-кода и JavaScript является его частью. JSP и JavaScript не работают синхронно. Щелкните правой кнопкой мыши страницу в веб-браузере и сделайте View Source, чтобы увидеть ее.