2016-10-26 2 views
0

У меня есть ошибкиjavax.el.PropertyNotFoundException: свойство 'идентификатор' не найден по типу java.lang.String

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/jsp/players/playersList.jsp at line 39 
36:   </thead> 
37:   <c:forEach items="${model.playersList}}" var="player" > 
38:   <tbody> 
39:    <td><c:out value="${player.id}" /> </td> 
40:    <td><c:out value="${player.firstName}"/> </td> 
41:    <td>$(player.lastName)</td> 
42:    <td>$(player.tournamentsIdPlusNameHistory)</td> 

и

javax.el.PropertyNotFoundException: Property 'id' not found on type java.lang.String

Модель:

private int id; 
private String firstName; 
private String lastName; 
private String city; 
private Array tournamentsIdPlusNameHistory; 
private Date lastActivity; 
private int rating; 
private String rank; 
private String email; 

с геттерами и сеттерами, такими как:

public int getId() { 
    return id; 
} 

public void setId(Integer id) { 
    this.id = id; 
} 

Это контроллер

public ModelAndView getPlayers(Map<String, Object> model) { 
    List<Player> playersList = playerDao.getAll(); 
    model.put("players", playersList); 
    return new ModelAndView("players/playersList", model); 
} 

Это .jsp файл:

<c:forEach items="${model.playersList}}" var="player" > 
    <tbody> 
     <td><c:out value="${player.id}" /> </td> 
     <td><c:out value="${player.firstName}"/> </td> 
     <td>$(player.lastName)</td> 
     <td>$(player.tournamentsIdPlusNameHistory)</td> 
     <td>$(player.lastActivity)</td> 
     <td>$(player.rating)</td> 
     <td>$(player.rank)</td> 
     <td>$(player.email)</td> 
    </tbody> 
</c:forEach> 

Я действительно не understant, что это проблема, потому что я нашел много проблем, как это и пытался следовать всем советам, но он все равно не работает.

+0

Этот проект существует на github также https://github.com/SolidaSlOl/belarusGo –

+2

Ваше выражение 'items' неверно. Он содержит '}' для многих. и ваш объект модели назван 'игроки' не' playersList'. Перепишите выражение ваших элементов на правильную вещь. '' –

+1

Теперь он работает. Я имею в виду, что ошибок нет, но значения не отображаются, но это еще одна история; D Спасибо –

ответ

2

Вы установили атрибут модели как players который содержит List<Players>. В течение цикла вы должны сделать изменения, как это,

<c:forEach items="${players}" var="player" > 
<tbody> 
    <td><c:out value="${player.id}" /> </td> 
    <td><c:out value="${player.firstName}"/> </td> 
    <td>${player.lastName}</td> 
    <td>${player.tournamentsIdPlusNameHistory}</td> 
    <td>${player.lastActivity}</td> 
    <td>${player.rating}</td> 
    <td>${player.rank}</td> 
    <td>${player.email}</td> 
</tbody> 
</c:forEach> 

Во время печати вы также использовали круглые скобки () вместо фигурных скобок {}.

+0

@ Микита Герасицин, если этот ответ помог вам или решил вашу проблему, пожалуйста, отметьте этот ответ как принятый. – VPK

-1

Я не уверен, но Я вижу, что свойство 'id' имеет значение private.

Возможно ли получить доступ к переменной частного члена с выражением $ {}?

+0

Нет, это не связано с этим, сущности полей не должны быть общедоступными –

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