2013-02-22 60 views
0

这是一个奇怪的问题,我面对很长时间,无法解决。希望这里有人能指出我的错误。非常感谢。JSP c:forEach错误:找不到属性

基本上,我使用C:forEach标记在JSP遍历的属性。但是,它显示模型类中的列表属性的“属性未找到错误”。下面是模型类中的属性代码:

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

而且我知道,JSP只能用getter方法的工作,这是我的列表属性的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> 

回答

0

你吸气剂getDeviceList(),所以属性是deviceList,而不是railDeviceInfoList

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

的EL不关心你的类的私有字段。它关心它的JavaBean属性。

+0

非常感谢您JB Nizet!我学习新东西。我认为EL关心模特班的私人领域。 – ShadowScorpion 2013-02-22 07:55:07

0

JSTL找到与getRailDeviceInfoList()方法,在你的情况 ,但它是不存在的。 你应该使用station.deviceList代替station.railDeviceInfoList

+0

是的,nrvmodi。 JB Nizet和你都是对的。我太想这样编程了。 – ShadowScorpion 2013-02-22 08:04:45

相关问题