【问题标题】:Pass value from JSP to SERVLET using URL使用 URL 将值从 JSP 传递到 SERVLET
【发布时间】:2014-01-13 03:07:52
【问题描述】:

我的目标是将值从 jsp 传递到 servlet。我设法传递了 reservationId 和 tableId 的值,但没有传递 staffId。

错误是:

java.lang.NumberFormatException:对于输入字符串:“staffId”

为什么会这样?是不是因为从 DROPDOWN LIST 中检索了 staffId?

我们将不胜感激!

<c:forEach items="${table}" var="table">
<tr>
<td>${table.reservationId}</td>
td><select name="staffId">
<c:forEach var="staff" items="${staff}">
<option value="${staff.staffId}">${staff.staffName}</option>
</c:forEach>
</select>
</td>

<td>
<a href="TableEditServlet?action=assign&reservationId=<c:out value="${table.reservationId}"/>&tableId=<%= request.getParameter("tableId") %>&staffId=<c:out value="${staff.staffId}"/>">

<input value="Assign" class="btn"></a></td> </tr>

</c:forEach>

【问题讨论】:

    标签: database jsp url servlets html-table


    【解决方案1】:

    您应该使用JavaScript 或JQuery 从&lt;select name="staffId" id="someId"&gt; 获取所选行的数据。

    更新(使用 javascript)

    ... add this javascript section before <body>
    <script>
    function assign(reservationId) {
    document.location="TableEditServlet?action=assign&reservationId="+reservationId+"&staffId="+document.getElementById("staffId_"+reservationId).value;
    // add tableId if you need as well
    }
    </script>
    ...
        <c:forEach items="${table}" var="table">
        <tr>
        <td>${table.reservationId}</td>
        <td>
        <select name="staffId" id="staffId_${table.reservationId}">
        <c:forEach var="staff" items="${staff}">
        <option value="${staff.staffId}">${staff.staffName}</option>
        </c:forEach>
        </select>
        </td>
        <td>
        <input value="Assign" class="btn" onclick="assign('<c:out value="${table.reservationId}"/>')">
        </td>
        </tr>
        </c:forEach>
    

    【讨论】:

    • 除了这2种方法还有其他方法吗?
    • 你想从用户选择的组合框中提交staffId - 它是客户端,你不能使用JSTL &lt;c:out&gt;,因为它是服务器端编程。
    • 但是,staffId 取自数据库。这就是为什么我使用 c:out 在 jsp 中显示
    • 您有staff 的列表,但试图以某种方式获得一个值staff.staffId。 staff.staffId 已经在你的循环之外了。
    • 谢谢。但是代码是这样的吗?无法做到:( input onclick="document.location='TableEditServlet?action=assign&reservationId=&tableId=&staffId="+$("#staff").val();'"
    猜你喜欢
    • 2013-11-25
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    相关资源
    最近更新 更多