JSTL выполняет итерацию по списку объектов

#java #jsp #jstl #iteration

#java #jsp #jstl #итерация

Вопрос:

Я получаю список ‘myList’ объектов в jsp. Объекты, которые я получаю, принадлежат, например, ‘MyClass’. Я хочу выполнить итерацию по этому списку через JSTL.

Код JSP приведен ниже :

 <c:forEach items="myList" var="element">    
  <tr>
    <td>${element.getStatus()}</td>
    <td>${element.getRequestType()}</td>
    <td>${element.getRequestedFor()}</td>
    <td>${element.getTimeSubmitted()}</td>
  </tr>
</c:forEach>
  

Я получаю исключение :

  00000024 WebApp  E   [Servlet Error]-[/requestHistory.jsp]: com.ibm.ws.jsp.translator.JspTranslationException: JSPG0227E: Exception caught while translating /requestHistory.jsp:  
    /requestHistory.jsp(31,6) --> JSPG0122E: Unable to parse EL function ${UserProcessRequests.getStatus()}.
  

Taglib, который я использую, является :

  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 <%@ page isELIgnored="false"%>
  

Ответ №1:

Произошла ошибка. Смотрите эту строку <c:forEach items="${myList}" var="element"> . ${} вокруг ‘myList’ отсутствовал.

 <c:forEach items="${myList}" var="element"> 
  <tr>
    <td>${element.status}</td>
    <td>${element.requestType}</td>
    <td>${element.requestedFor}</td>
    <td>${element.timeSubmitted}</td>
  </tr>
</c:forEach>
  

Комментарии:

1. У меня есть сомнение здесь, что такое myList здесь, это имя переменной сеанса?

Ответ №2:

замените его на

 `${element.status}`
  

JSTL будет самостоятельно искать стандартные средства получения и установки