【问题标题】:How do I pass a JSP (HTML) table's row to a servlet? [duplicate]如何将 JSP (HTML) 表的行传递给 servlet? [复制]
【发布时间】:2014-08-11 01:54:22
【问题描述】:

这是我的代码:

    <table border="2">
<tr>
<th>CourseID</th>
<th>SectionNo</th>
<th>Add Info</th>
</tr>
    <% while(rs.next()){    %>  

        <tr>
            <FORM NAME="actionForm" action="ProfCourseUpdate" method='post'>
            <td> <%=rs.getString("CourseID") %> </td>
            <td> <%=rs.getInt("SectionNo") %> </td>
            <td> <input type="submit" name="ProfCourseUpdate" value="Update Course Info"></td>
            </FORM>
        </tr>

    <% } %>
</table>

我正在从数据库中提取信息并将它们放入表中各自的列中。 所以它看起来像: |课程---部分---(按钮)|

当我让用户单击提交按钮时,我希望能够传递整行的数据。我试过用这种方式隐藏输入:

<td> <%=rs.getString("CourseID") %> </td><td><input type="hidden" name="Course" value="<%rs.getString("CourseID") %>"></td>

它只会导致一些奇怪的表格格式并且不起作用。

【问题讨论】:

    标签: java mysql jsp servlets


    【解决方案1】:

    您需要将要传递的所有信息放在 INPUT(文本,隐藏)上,或使用 URL 将其通知给 servlet。

    首先,您可能需要考虑以下几点:

    1. 在您的页面中仅使用 一个 form 标记,而不是每行使用一个。
    2. 将整个 table 括在您的 form 标记中。

    你会得到这样的结果:

    <FORM NAME="actionForm" action="ProfCourseUpdate" method='post'>
    <table border="2">
    <tr>
        <th>CourseID</th>
        <th>SectionNo</th>
        <th>Add Info</th>
    </tr>
    <% while(rs.next()){    %>  
    <tr>
        <td> <%=rs.getString("CourseID") %> </td>
        <td> <%=rs.getInt("SectionNo") %> </td>
        <td> <input type="submit" name="ProfCourseUpdate" value="Update Course Info"></td>
    </tr>
    <% } %>
    </table>
    </FORM>
    

    现在,所有这些都已清除,您可能想要使用不同的方法。如果您希望您的表格用于选择课程/部分的目的,您甚至不需要表格(或提交按钮)。

    你可以替换这个:

        <td><input type="submit" name="ProfCourseUpdate" value="Update Course Info"></td>
    

    有了这个:

        <td><a href="/ProfCourseUpdate?CourseID=<%=rs.getString("CourseID") %>&SectionNo=<%=rs.getInt("SectionNo") %>">Update</a></td>
    

    这样,您的ProfCourseUpdate servlet 将接收检索和更新该行所需的两个变量(CourseIDSectionNo)。

    如果您必须使用按钮,您可以使用相同的技术,但在值上编码CourseIDSectionNo。但我不会推荐它。

    【讨论】:

    • 是的,我尝试使用隐藏输入,但没有成功。如何为每一行创建一个包含唯一信息的 URL?
    • 你好 geoxile。看起来您在 WEB 开发方面没有太多经验。在深入研究 SERVLET 之前,我建议阅读有关 HTML FORM 上的 GET 和 POST 方法的内容。他们是如何工作的,他们如何将信息传递给服务器。它将为您提供一个更清晰的场景来开始使用 Servlet 和 JavaEE 技术开发软件。
    • 嗨。是的,我不是很有经验。我曾尝试阅读有关 JSP 的教程,但我的阅读记忆力很差,特别是因为我有时觉得阅读很可怕,所以我发现实际从事一个项目并陷入困境是我学习的最佳方式。感谢您的所有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 2010-12-16
    • 2015-01-18
    相关资源
    最近更新 更多