Q:

JSP c:forEach error: property not found

It's a weird problem I have faced long time and couldn't resolve.  Hope someone here can point out my mistake.  Thanks a lot.  
Basically, I was using c:forEach tag in JSP to loop through the properties.  However, It showed "Property not found error" for list property inside model class.  Here is code of properties inside model class:
private String stnID = new String();
private String stnShortName = new String();
private String stnDesc = new String();
private List<RailDeviceInfo> railDeviceInfoList = new ArrayList<RailDeviceInfo>();

And I knew that JSP only work with the getter method, here is my getter for list property:
public List<RailDeviceInfo> getDeviceList()
{
    return this.railDeviceInfoList;
}

Finally, here is my JSP code:
<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>

A:

Your getter is getDeviceList(), so the property is deviceList, and not railDeviceInfoList:
<c:forEach items="${station.deviceList}" var="device">

The EL doesn't care about the private fields of your class.  It cares about its JavaBean properties. 