JSP c:forEach错误:找不到属性

时间:2013-02-22 07:33:53

标签: jsp

这是一个很长时间我无法解决的奇怪问题。希望有人在这里指出我的错误。非常感谢。

基本上,我在JSP中使用c:forEach标记来遍历属性。但是,它显示"未找到属性错误"对于模型类中的列表属性。这是模型类中的属性代码:

private String stnID = new String();
private String stnShortName = new String();
private String stnDesc = new String();
private List<RailDeviceInfo> railDeviceInfoList = new ArrayList<RailDeviceInfo>();

我知道JSP只能使用getter方法,这里是list属性的getter:

public List<RailDeviceInfo> getDeviceList()
{
    return this.railDeviceInfoList;
}

最后,这是我的JSP代码:

<c:forEach items="${railList}" var="station">
   <c:out value="${station.stnID}" />
   <c:out value="${station.stnShortName}" />
   <c:out value="${station.stnDesc}" />

   <c:forEach items="${station.railDeviceInfoList}" var="device">
       <!-- can not found station.railDeviceInfoList -->
       <c:out value="${device.id}" />
       <c:out value="${device.name}" />
   <c:forEach>

</c:forEach>

2 个答案:

答案 0 :(得分:0)

您的获取者是getDeviceList(),因此该属性为deviceList,而不是railDeviceInfoList

<c:forEach items="${station.deviceList}" var="device">

EL并不关心你班级的私人领域。它关心它的JavaBean属性。

答案 1 :(得分:0)

jstl在你的情况下找到getRailDeviceInfoList()方法 但它不存在。 你应该使用station.deviceList而不是station.railDeviceInfoList