首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JSP 動態表格數據提交到 Servlet 的參數獲取與遍歷處理方法

     編輯:程式設計疑難解答

場景

JSP 使用 <c:forEach> 動態生成多行表單數據,每行包含多個輸入框,提交到 Servlet 批量處理。

JSP 關鍵代碼

<c:forEach items="${list}" var="item" varStatus="status">
    <input name="id_${status.index}" value="${item.id}" />
    <input name="name_${status.index}" value="${item.name}" />
    <input name="price_${status.index}" value="${item.price}" />
</c:forEach>

Servlet 獲取邏輯

int rowCount = Integer.parseInt(request.getParameter("rowCount")); // 隱藏域傳總行數
for (int i = 0; i < rowCount; i++) {
    String id = request.getParameter("id_" + i);
    String name = request.getParameter("name_" + i);
    String price = request.getParameter("price_" + i);
    // 非空校驗、業務處理...
}

更優雅:同名參數 + getParameterValues

<input name="id" value="${item.id}" /> // 所有行同名
<input name="name" value="${item.name}" />
<input name="price" value="${item.price}" />

// Servlet
String[] ids = request.getParameterValues("id");
String[] names = request.getParameterValues("name");
String[] prices = request.getParameterValues("price");
for (int i = 0; i < ids.length; i++) {
    // 同索引屬於同一行
}

優勢

  • 代碼簡潔,無需手動拼接索引。
  • 自動處理動態行數,ids.length 即為行數。
  • 順序由瀏覽器保證(文檔順序)。

注意

  • 確保每行輸入框順序、數量一致,否則數組長度不一致導致索引錯位。
  • 複雜對象建議前端 JSON 序列化,後端用 Jackson/Gson 反序列化列表。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved