Я пытаюсь отобразить поле, используя EL, но получаю исключение, даже если метод get является правильным.Что еще может быть здесь, это таблица, которую я отображаю:
<tr>
<td><c:out value="${sessionScope.user.email}"></c:out></td>
<td id="myusername"><c:out value="${sessionScope.user.userName}"></c:out></td>
<td><c:out value="${sessionScope.user.userID}"></c:out></td>
<td><c:out value="${sessionScope.user.cardListSize}"></c:out></td>
<td id="currentrank"><c:out value="${sessionScope.user.rank}"></c:out></td>
<td hidden="true" id="currentpoints"><c:out value="${sessionScope.user.points}"></c:out></td>
</tr>
${sessionScope.user.rank}
и ${sessionScope.user.points}
- это то, что вызывает ошибку, если я удаляю эти два, все остальное загружается правильно.Вот как я устанавливаю атрибут перед пересылкой в этот JSP:
UserAccount userAccount = DataDAO.findUser(userName, password);
HttpSession session = request.getSession(true);
session.setAttribute("user",userAccount);
здесь является частью объекта UserAccount:
public String getRank(){
return rank;
}
public Integer getPoints(){
return points;
}
здесь я создаю этот объект после получения информации изDB:
if(password.equals(rightPassword)){
Integer userspoints = user.getInt("points");
String rank = DataAnalyzer.determineRank(userspoints);
UserAccount retrievedUser = new UserAccount(userName,rightPassword,user.getString("firstname"),user.getString("lastname"),user.getString("email"),rank,userspoints,user.getString("avatar"));
Integer userID = user.getInt("USER_ID");
retrievedUser.setUserID(userID.toString());
return retrievedUser;
} else {
return null;
}
Если бы одно из этих полей было пустым, это вызвало бы исключение свойства не найден?
stacktrace:
description Сервер обнаружилвнутренняя ошибка, которая помешала ему выполнить этот запрос.
исключение
org.apache.jasper.JasperException: произошло исключение при обработке страницы JSP /WEB-INF/QuestionPage.jsp в строке90
87: 88: 89: 90: $ {sessionScope.user.rank} 91: $ {sessionScope.user.points} 92: 93:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException (JspServletWrapper.java:578) org.apache.jasper.servlet.serviceJspFile (JspServlet.java:401) org.apache.jasper.servlet.JspServlet.service (JspServlet.java:345) javax.servlet.http.HttpServlet.service (HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.avaFilter (Wilter)52) flashcardshark.servlet.LoginServlet.doPost (неизвестный источник) javax.servlet.http.HttpServlet.service (HttpServlet.java:648) javax.servlet.http.HttpServlet.service (HttpServlet.gt..websocket.server.WsFilter.doFilter (WsFilter.java:52)
основная причина
javax.el.PropertyNotFoundException: свойство 'rank' не найдено в типе javax flashcardshark.bean.UserAccount.el.BeanELResolver $ BeanProperties.get (BeanELResolver.java:268) javax.el.BeanELResolver $ BeanProperties.access $ 300 (BeanELResolver.java:221) javax.el.BeanELResolver.property (BeanELRavol..getValue (BeanELResolver.java:95) org.apache.jasper.el.JasperELResolver.getValue (JasperELResolver.java:110) org.apache.el.parser.AstValue.getValue (AstValue.java:169) или.ValueExpressionImpl.getValue (ValueExpressionImpl.java:184) org.apache.jasper.runtime.PageContextImpl.pprietaryEvaluate (PageContextImpl.java:943) org.apache.jsp.WEB_002dINF.QuestionPage_jsp.jasper.runtime.HttpJspBase.service (HttpJspBase.java:70) javax.servlet.http.HttpServlet.service (HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.serava. org: 38 (JSP).apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:401) org.apache.jasper.servlet.JspServlet.service (JspServlet.java:345) javax.servlet.http.HttpServlet.jservserviceorg.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) flashcardshark.servlet.LoginServlet.doPost (неизвестный источник) javax.servlet.http.HttpServlet.service (HttpServlet.java) java.http.HttpServlet.service (HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52)