在jsp中发布过多信息

时间:2013-12-14 14:26:05

标签: java forms spring maven http-post

我的jsp中有一个包含类别的列表,当我点击一个类别时,该列表会填充该类别的产品。当我从该列表中单击某个产品时,我需要将该产品添加到jsp中的另一个列表中。 我遇到的问题是,当我点击某个类别时,某个类别的产品会被添加到第二个列表中,因为当我发布一个类别时,productd的ID也会发生变化...

这是表格:

  <c:forEach items="${categories}" var="item" >                  
<c:choose>
    <c:when test="${item.getClass().name=='domain.Categorie'}">

      <form:form method="POST" action="shoppinglist.htm" modelAttribute="categoriedto"> 
      <form:input path="id" type="hidden" value="${item.id}" /> 
           <input type="submit" height="150px" width="180px" alt="Submit" value="${item.categorieName}" class="productlistbtn">                                   
      </form:form>           
  </c:when>
  <c:otherwise>
           <form:form method="POST" action="shoppinglist.htm" modelAttribute="productdto">                  
           <form:input path="id" type="hidden" value="${item.id}" /> 
           <input type="submit" height="150px" width="180px" alt="Submit" value="${item.description}" class="productlistbtn">                                   
           </form:form> 
  </c:otherwise>  
</c:choose>
          </c:forEach>   

这是控制器中的post方法:

@RequestMapping(value = {"/shoppinglist"},method = RequestMethod.POST)
public String showShoppinglistPage
(@ModelAttribute("categoriedto") CategorieDto categoriedto,
 @ModelAttribute("productdto") ProductDto productdto,Model model) 
{
    if(productdto.getId()!=0)
    {
    List<Product> producten=new ArrayList<Product>();
    Product p = categoryRepository.findProductBy(productdto.getId());
    producten.add(p);
    model.addAttribute("products", producten);
    }
    model.addAttribute("categories", categoryRepository.findBy(categoriedto.getId()).getProducts());
   return "shoppinglist";
}

1 个答案:

答案 0 :(得分:0)

我意识到你有两个提交形式。所以,它会发布所有值。我认为您需要再次编辑表单以解决问题。