如何将数组列表从一个servlet传递到另一个?

时间:2019-03-15 07:45:31

标签: java jsp servlets model-view-controller

我有一个result.jsp文件,该文件返回查询的结果列表并将其显示在表上。此处理是从“提取” Servlet完成的。我下面有一个按钮,该按钮将调用“最终” servlet,该servlet将结果写入文件。

如何将resultList传递给“ Final” Servlet?

<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>

提取Servlet

 List<Result> resultList = executeQueryOnMessageTable1();

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

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

1 个答案:

答案 0 :(得分:0)

使用setAttribute方法。

 request.setAttribute("result", resultList);

如果您要在单击按钮时调用servlet,我不知道您为什么使用请求分配器。

以最终的servlet的身份访问数组列表

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

如果要在获取resulList之后立即调用最终servlet,请使用request.include获取最终servlet中的值。

request.getRequestDispatcher("/servleturl").include(request, response);