【问题标题】:Retrieving value from html table to servlet [closed]从html表中检索值到servlet [关闭]
【发布时间】:2015-05-10 05:06:09
【问题描述】:

我试图从 JSP 页面获取表行到 Servlet,但最终出现以下错误。正确的做法是什么?

Severe:   java.lang.NullPointerException
at com.pg.servlet.session.Controller.doPost(Controller.java:125)

java:

        String[] recordsToUpdate = request.getParameterValues("attTable");

        try {
            for (int i = 0; i < recordsToUpdate.length; i++) {
                total = SQLHelper.Update(recordsToUpdate[2], recordsToUpdate[3], recordsToUpdate[0]);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

html:

<table id="attTable" class="table">
        <tr class="header">
            <th>Id</th>
            <th>Name</th>
            <th>Present?</th>
            <th>Remarks</th>
        </tr>
        <c:forEach var="List" items="${myVar}" varStatus="iter">
            <tr class="row">
                <td>${List.Id}</td>
                <td>${List.Name}</td>  
                <td><input type="checkbox" name="chkDisperse"></td>
                <td>
                    <input type="text" name="remarks">
                </td>
            </tr>
        </c:forEach>
    </table>

【问题讨论】:

  • 能否请您分享 html 中的
    标签,并指出哪一个是 Controller.java 中的第 125 行
  • 第 25 行:for (int i = 0; i
  • 来自您的 html 的标签

标签: java jsp servlets


【解决方案1】:

请求不包含名为“attTable”的参数,因为它不是表单输入类型的一部分。这会导致 recordsToUpdate 为 null,因此在 null 对象上调用方法 length 时会出现 NullpointerException。

【讨论】:

    【解决方案2】:

    您可以在每个 tr 中添加一个 name='Id' 的隐藏字段,并且您必须在您的 servlet 中传递 request.getParameterValues("Id")。请检查以下 stackoverflow 问题。

    Accessing HTML-Input field arrays in Java Servlet / Structure of the input fields

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多