NullPointerException при передаче ArrayList из сервлета в JSP

166
13 апреля 2019, 23:20

Столкнулся с такой проблемой: передаю в JSP ArrayList из сервлета с помощью request.setAttribute(), но при попытке получить элемент этого списка в JSP получаю NullPointerException.

Вот сервлет

public class TestServlet extends HttpServlet {
File f = new File("Report_not_R5_updated.xlsx");
ArrayList<String> list = new ArrayList<String>();
protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(f));
    XSSFSheet sheet = workbook.getSheet("Alarm");
    for(int r = 1; r<= sheet.getLastRowNum(); r++) {
        XSSFRow row = sheet.getRow(r);
        if((row.getCell(9).toString()).equals("Нет R5")) {
           list.add((row.getCell(3)).toString()); 
        }
    }
    request.setAttribute("answer", list);
    request.getRequestDispatcher("/test.jsp").forward(request, response);
    workbook.close();
}
}

Вот страничка JSP:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Автоматический подбор R5</title
</head>
<body>
<h2>Автоматический подбор R5</h2>
<form action="TestServlet" method="POST">
<button type="submit">Получить список</button>
</form>
<%@page import="java.util.ArrayList" %>
<%
ArrayList<String> list = (ArrayList<String>)request.getAttribute("answer"); 
out.println(list.get(0));
%>
</body>
</html>

Если я просто вывожу на экран ArrayList (out.println(list)), то вижу, что он не пустой, в нем есть элементы. Подскажите, в чем ошибка?

Answer 1

В чем ошибка я, к сожалению, не скажу, но могу предложить Вам альтернативу

<c:forEach var="listItem" items="${answer}">
    //Работа с каждым элементом отдельно использую ${listItem} 
</c:forEach>

Вы так же можете для эксперимента попробывать вывести тип элемента list в вашей jsp, чтобы убедиться, что произошла правильная конвертация

READ ALSO
Tomcat не видит драйвер JDBC MS SQL

Tomcat не видит драйвер JDBC MS SQL

В maven-проекте, запускаемом из NetBeans 82 подключена зависимость

147
JavaFX vs. Swing

JavaFX vs. Swing

Давненько не брал в руки шашку, как то решил переписать свою аппу под Android на толстого десктоп клиента и обнаружил, что Swing типа как бы умер

160
spring отказоустойчивость jdbc

spring отказоустойчивость jdbc

Есть две базы(PostgreSQL) дублирующие полностью друг другаВ нашем апи приложении раньше использовался один датасурс, т

178