thymeleaf th: каждый использует возрастающую переменную как индекс списка - PullRequest
0 голосов
/ 06 июня 2018

У меня есть учебный курс, в котором есть список участников.

public class course {

    private List<Address> attendeeList;

    public List<Address> getAttendeeList() {
        return attendeeList;
    }

}

Если я редактирую существующий курс, я хочу, чтобы выбранные поля автоматически выбирали опцию правильного участника.Ниже приведена выдержка из моей html-страницы:

<p class="form-control-static" th:each="i, stat : ${course.attendeeList}"> 
   <select class="form-control" name="attendeeIds">
      <option th:value="0">Please select an Attendee</option>
      <option th:each="attendee : ${addresses}" 
         th:value="${attendee.id}" 
         th:text="${attendee.firstName}+' '+${attendee.lastName}" 
         th:selected="${attendee.id}==
            (course.attendeeList[${stat.index}].id})"> 
      </option>
   </select>
</p>

Если я открою страницу, я получу следующую ошибку: Неожиданный токен.Ожидаемый «rsquare (])», но был «lcurly ({)»

Если я заменим $ {stat.index} на число, например, 0, и в моем курсе 10 слушателей, то элемент select появится 10 разно всегда с первым выбранным членом.Как выбрать правильного участника в каждом поле выбора?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Когда вы находитесь в выражении, вам не нужно использовать другое ${...}.Я бы написал это выражение как:

th:selected="${attendee.id == course.attendeeList[stat.index].id}"
0 голосов
/ 06 июня 2018

Попробуйте изменить значение с:

(course.attendeeList[${stat.index}].id})"> 

на:

(course.attendeeList[__${stat.index}__].id})"> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...