这是我的模型:
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"没有属性"Courses"。
EL 不寻找属性,而是寻找 getter:
public class AnyClass {
private String aProperty;
private String getAGetter() {
// ...
}
}
${anyClass.aProperty}
会失败,${anyClass.aGetter}
会成功。
若要将 getter 名称转换为 EL 表达式,请删除"get"(或"is")前缀,并将第一个字符小写。
在你的情况下,我猜你的getter名字是getCourses
,这给了courses
.所以你必须使用${class.courses}
.
请注意,您不遵循 Java 命名约定。