如何将数据从JSP中的表传递到Java控制器?

时间:2014-03-05 09:22:13

标签: java jsp

请帮我解决一个问题! 我在JSP中创建了表,并填充了我的数据库中的数据,问题是 - 我不知道如何从我的控制器访问JSP数据。 例如 - 我需要从JSP将适当的ID(只是String)传递给我的控制器以执行Delete方法。

我的jsp:

<body>
<form action="/editCategory" method="POST">
<h3>Existing categories</h3>
<%
    List<Category> categories = (List<Category>) request.getAttribute("model");
    if (categories != null) {
%>
<table border="1">
    <tr>
        <th width="24">ID</th>
        <th width="80">Name</th>
        <%--<th></th>--%>
    </tr>
    <%
        for (Category category : categories) {
    %>
    <tr>
        <td><%= category.getId() %> <% request.setAttribute("id", category.getId());%>
        </td>
        <td><%= category.getName() %>
        </td>
        <td>
            <input type="submit" name="delete" value="Delete"/>
        </td>
    </tr>
    <%
        }
    %>
</table>
<%
} else {
%>
<b>Categories list is empty :(</b>
<%
    }
%>

</form>
</body>

我的控制器方法:

public Model getModel(HttpServletRequest req, HttpServletResponse resp) throws DBException
    {
        if (req.getParameter("submit")!=null){
            addCategory(req);
        }

        if (req.getParameter("delete")!=null){
            deleteCategory(req);
        }
        categories = categoryDAO.getCategories();
        return new Model("/editCategory.jsp", categories);

    }

private void deleteCategory(HttpServletRequest req) {
        System.out.println(req.getAttribute("id") + " printed");
    }

现在我只想看到正确的身份证件!
请帮忙!

1 个答案:

答案 0 :(得分:0)

你可以这样做:

<%
    for (Category category : categories) {
%>
<tr>
    <td><%= category.getId() %>
    <input type="hidden" name="allIds" value="<%= category.getId() %>" /></td>
    <td><%= category.getName() %>
    </td>
    <td>
        <input type="submit" name="delete" value="Delete"/>
    </td>
</tr>
<%
    }
%>

因为类型显示hidden不可见。 之后用以下内容读取servlet中的值:

String[] lAllIds = request.getParameterValues("allIds");
相关问题