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, чтобы увидеть ее.

Другие вопросы по тегам