thymeleaf th:每个使用增量变量作为列表索引

时间:2018-06-06 00:36:14

标签: spring-mvc thymeleaf

我有一个课程,里面有一份与会者名单。

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>

如果我打开页面,我会收到以下错误:意外的令牌。预期&#39; rsquare(])&#39;但是好像({)&#39;

如果我用例如0的数字替换$ {stat.index}并且我的课程有10个与会者,那么选择项目将出现10次但总是选择第一个成员。如何在每个选择字段中选择正确的与会者?

2 个答案:

答案 0 :(得分:0)

尝试更改:

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

为:

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

答案 1 :(得分:0)

当您在表达式中时,您不需要使用其他${...}。我会把这个表达式写成:

th:selected="${attendee.id == course.attendeeList[stat.index].id}"