javax.el.PropertyNotFoundException: class 'com.springapp.mvc.Class' 没有 属性 'Courses'

javax.el.PropertyNotFoundException: The class 'com.springapp.mvc.Class' does not have the property 'Courses'

这是我的模型:

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: The class 'com.springapp.mvc.Class' does not have the property 'Courses'.

EL 不寻找属性而是寻找 getters:

public class AnyClass {

  private String aProperty;

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

}

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

要将 getter 名称转换为 EL 表达式,移除 "get"(或 "is")前缀,并将第一个字符小写。

在你的情况下,我猜你的 getter 名字是 getCourses,它给出 courses。所以你必须使用 ${class.courses}.


请注意,您没有遵循 Java naming conventions