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。
这是我的模型:
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。