0

这是我的模型:

public class Class {
    @ManyToMany(etc etc)
    @JoinTable(etc etc)
    public List<Course> Courses;

这是我的看法:

<c:forEach items="${classes}" var="class">
<tr>
    <td>${class.className}</td>
    <td>
    <c:forEach items="${courses}" var="course">
        <input type="checkbox"
            <c:if test="${class.Courses.contains(course)}"> checked</c:if>>
        ${course.courseName}
    </c:forEach>
    </td>
</tr>
</c:forEach>

该视图仅产生此 500 错误:

javax.el.PropertyNotFoundException:类“com.springapp.mvc.Class”没有属性“课程”。

4

1 回答 1

0

EL 不寻找属性,而是寻找吸气剂:

public class AnyClass {

  private String aProperty;

  private String getAGetter() {
    // ...
  }

}

${anyClass.aProperty}会失败,${anyClass.aGetter}会成功。

要将 getter 名称转换为 EL 表达式,请删除“get”(或“is”)前缀,并将第一个 char 小写。

在您的情况下,我猜您的吸气剂名称是getCourses,它给出了courses. 所以你必须使用${class.courses}.


请注意,您没有遵循Java 命名约定

于 2015-04-29T11:57:37.003 回答