2012-06-27 2 views
0

У меня возник вопрос о том, как динамически обращаться к индексу из списка атрибутов модели. В моем коде у меня есть javascript, который читает значение из модели. Модель имеет атрибут, который потенциально является списком.MVC Spring Model - динамический доступ к списку списка атрибутов

document.getElementById("phoneNumberRPhone").value = "${model.people[index].phoneNumber.number}"; 

Здесь вы можете увидеть, что я пытаюсь установить яваскрипт значение числа, извлеченное из модели, где я могу иметь несколько людей. Индекс - это мое динамическое значение. Он отлично работает, если я конкретно указываю model.people [0] или model.people [1], но если я попытаюсь установить число для индексации и динамического использования индекса, оно больше не работает.

Я был бы очень признателен за любую помощь, которую кто-либо мог бы предоставить по этому вопросу. Я уверен, что это либо просто ошибка пользователя, либо неправильное использование синтаксиса.

ответ

2

По-видимому, ${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 не работают синхронно. Правая страница в веб-браузере и сделайте Просмотрите источник, чтобы посмотреть его.

+0

Спасибо за ваш ответ! Я решил использовать foreach, но это казалось очень странным подходом, когда нужно было перебирать список каждый раз, когда я хотел выбрать новое значение. Возможно, это единственный способ сделать это с тем, как я его закодировал. –

+2

Да, как уже упоминалось, такой подход вызывает сомнения. Скорее всего, вы действительно ищете решение в совершенно неправильном направлении. Если вы подробнее расскажете о функциональном требовании, для которого, по вашему мнению, это правильное решение, мы можем предложить правильное решение. Опять же: JSP - генератор кода HTML. Все веб-браузеры извлекают один и весь код HTML вместе с некоторыми JS. JSP не запускается в веб-браузере, а на веб-сервере. JS работает в веб-браузере, а не на веб-сервере. – BalusC

+0

Возможно, мне нужно атаковать это под другим углом. Вот контекст. У меня есть имя клиента, которое я ввел в веб-форму. Я отправляю форму и получаю некоторые номера телефонов. Я добавляю номера телефонов, возвращенные вместе с именами людей, прикрепленными как атрибуты людей модели. Затем я нажимаю на данные на странице и хочу выбрать этого человека для повторного использования в другом месте. Однако число людей/чисел, которые могут быть возвращены, является динамическим. –

Смежные вопросы