Как передать Array List из одного сервлета в другой? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть файл result.jsp, который возвращает список результатов запроса и отображает его в таблице. Эта обработка выполняется из сервлета «Extract». И ниже у меня есть кнопка, которая вызовет «окончательный» сервлет, который запишет результат в файл.

Как я могу передать resultList сервлету "Final"?

<div class="content">      
     <table border="1" class="blueTable">
        <thead>
            <tr>
                <th>EMPLOYEE ID</th>
                <th>EMPLOYEE NAME</th>
                <th>DEPARTMENT</th>
                <th>OFFICE NUMBER</th>
                <th>SALARY</th>
            </tr>
        </thead>
        <c:forEach items="${resultList}" var="item">
            <tr>
                <td>${item.employeeId}</td>
                <td>${item.employeeName}</td>
                <td>${item.department}</td>
                <td>${item.officeNumber}</td>
                <td>${item.salary}</td>
            </tr>
        </c:forEach>
    </table>    
</div>

 <div>
    <span>Extract Directory:&nbsp;</span>
    <span><input type="text" id="filepath" name="filepath" size="40"/></span>       
 </div>
 <br/>
 <div>
    <span >Extract File Name:</span>
    <span><input type="text" id="filename" name="filename" size="40"/></span>       
 </div>
 <br/>
<form action="Final" method="post">
     <span><input type="submit" name="extractButton" value="EXTRACT"/></span>
</form>

Экстракт сервлета

 List<Result> resultList = executeQueryOnMessageTable1();

   if(!resultList.isEmpty()) { 
       request.setAttribute("resultList", resultList);
   }

   RequestDispatcher req = request.getRequestDispatcher("/result.jsp");
   req.forward(request, response);

1 Ответ

0 голосов
/ 17 марта 2019

Используйте метод setAttribute.

 request.setAttribute("result", resultList);

И я не знаю, почему вы используете диспетчер запросов, если вы хотите вызвать сервлет по нажатию кнопки.

Получите доступ к списку массивов в последнем сервлете как

ArrayList<String> list=(ArrayList<List>)request.getAttribute("result"); //don't forget to type cast, as the getAttribute returns object.

Если вы хотите вызвать финальный сервлет сразу после получения resulList, используйте request.include для получения значений в финальном сервлете.

request.getRequestDispatcher("/servleturl").include(request, response);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...