以前常用過水的網頁做些偷吃步的工作,這次是用於測試,太久沒寫反而忘了。需求是要把測試資料以List<Map>形式放進Session傳到被測網頁,而測試資料可以由測試人員在網頁上填,其Solution如下:
1.Input Form JSP:
<table>
<tr>
<td> Title 1</td>
<td> Title 2</td>
</tr>
<% for (int i=0; i<20; i++) { %>
<tr>
<td> <Input type="text" name="T1"/></td>
<td> <Input type="text" name="T2"/></td>
</tr>
<% } %>
</table>
上例的JSP,會創造T1、T2陣列的Request,之後Submit到過水的頁面。
2.過水頁面
<% // 傳同名input name會是String陣列取得,是故一定要用getParameterValues,若單一值則用getParameter。
String[] T1s = request.getParameterValues("T1");
String[] T2s = request.getParameterValues("T2");
… // 轉成List<Map<key, data>>
session.setAttribute("list", list); // 步驟2:寫到Session
response.sendRedirect("tested.jsp"); // 步驟3:導到受測url。
%>