2013-02-22 5 views
0

Это странная проблема, с которой я столкнулся давно и не мог решить. Надеюсь, кто-то здесь может указать на мою ошибку. Большое спасибо.JSP c: forEach error: свойство не найдено

В основном, я использовал 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 работать только с методом газопоглотительного, вот мой добытчик для списка собственности:

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

0

jstl найти метод getRailDeviceInfoList() в вашем случае , но его не существует. вы должны использовать station.deviceList вместо station.railDeviceInfoList

+0

Да, nrvmodi. И JB Nizet, и вы правы. Я был слишком болен, чтобы запрограммировать этот путь. – ShadowScorpion

Смежные вопросы