2014-03-05 30 views
2

请帮我解决一个问题! 我在JSP中创建了表,并填充了来自我的数据库的数据,问题是 - 我不知道如何从我的控制器访问该JSP数据。 例如 - 我需要通过适当的ID(只是字符串)从我的控制器从JSP执行删除方法。如何将数据从JSP中的表传递到Java控制器?

我的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"); 
    } 

现在我只想看到正确的ID取!
请帮忙!作为类型说hidden是不可见的

<% 
    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> 
<% 
    } 
%> 

+0

你需要使用HTML的'input'发送表单参数传递值... –

+0

抱歉,但我所理解的 - 输入我的HTML将怎样影响在浏览器中显示。但我想避免它 – user3061113

+0

d以下答案是使用隐藏字段进行此操作的正确方法 –

回答

0

你可以这样来做。 之后读取的值与你的servlet:

String[] lAllIds = request.getParameterValues("allIds"); 
+0

谢谢! ..我知道答案是简单的 - 从来没有与HTML) – user3061113

+0

接受。 但是,可能你知道如何只取一个ID?表格行中的删除按钮的适当ID ...? =) – user3061113

+1

输入类型复选框。为每一行添加一个复选框。 name = deletedIds。如果复选框被选中,该值将被传递给你的servlet。用getParameterValues读取它,你将会得到必须删除的id。 –

相关问题