【问题标题】:Multiple submit buttons with different value具有不同值的多个提交按钮
【发布时间】:2018-11-24 21:36:30
【问题描述】:

我需要捕获提交按钮的值,但按下按钮只会向我发送第一个生成按钮的值。

这是我的代码

modificarVivienda.jsp:

        <table border="1">
            <thead>
                <tr>
                    <td>
                        Codigo vivienda
                    </td>
                    <td>
                        Direccion
                    </td>
                    <td>
                        Numero
                    </td>
                    <td>
                        Tipo vivienda
                    </td>
                    <td>
                        Condominio
                    </td>
                    <td>
                        Rut propietario
                    </td>
                </tr> 
            </thead> 
            <tbody>
            <c:forEach items="${lstviviendas}" var="v">

                <tr>
                    <td>
                        ${v.cod_vivienda}
                    </td>
                    <td>
                        ${v.direccion}
                    </td>
                    <td>
                        ${v.numero}
                    </td>            
                    <td>
                        ${v.tipo_vivienda}
                    </td>
                    <td>
                        ${v.nombre_condominio}
                    </td>
                    <td>
                        ${v.rut_propietario}
                    </td>
            <input type="text" value="${v.cod_vivienda}" name="cod_vivienda" hidden="true">
            <td>
                <input type="submit" value="Modificar" id="btnModificar">
            </td>
            </tr> 
        </c:forEach>
        </tbody>
    </table>

小服务程序:

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    int cod_vivienda = Integer.parseInt(request.getParameter("cod_vivienda"));

    DAOVivienda dv = new DAOVivienda();
    HttpSession session = request.getSession();
    ArrayList<Vivienda> vivienda = dv.buscarPorId(cod_vivienda);
    session.setAttribute("viviendaAModificar", vivienda);
    response.sendRedirect("vivienda/modificar.jsp");
}

【问题讨论】:

  • 我修正了一些语法,但我仍然不知道你问的是不是你想问的。我在您的代码中只看到一个提交按钮

标签: java forms jsp button submit


【解决方案1】:

“我需要捕获提交按钮的值

您的提交按钮都没有名称,因此按钮没有提交任何值

我想你的意思是说你想要相关的&lt;input&gt; 的值,名为cod_vivienda

“按下按钮只会向我发送第一个生成按钮的值”

这是不正确的。所有cod_vivienda 值都已提交。你可能刚打电话给getParameter("cod_vivienda"),javadoc 说:

如果将此方法与多值参数一起使用,则返回的值等于getParameterValues 返回的数组中的第一个值

如您所见,要获取所有值,您必须调用 getParameterValues("cod_vivienda")

要实际获取一个名为cod_vivienda 的参数,其值与按下的按钮匹配,您应该使用&lt;button&gt; 元素,它可以将值与按钮相关联,与显示的文本分开。

替换:

<input type="text" value="${v.cod_vivienda}" name="cod_vivienda" hidden="true">
<td>
  <input type="submit" value="Modificar" id="btnModificar">
</td>

与:

<td>
  <button type="submit" name="cod_vivienda" value="${v.cod_vivienda}">Modificar</button>
</td>

现在,只有按下的按钮的名称/值对将提交给服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多