Свойство EL Не найдено исключение, правильный метод получения - PullRequest
0 голосов
/ 09 декабря 2018

Я пытаюсь отобразить поле, используя 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)

...