title: 400 the request sent by the client was syntactically incorrect
body: <p>I have gone through so many examples of this nature and proposed solutions from this site, but none of the solutions provided thereon apply to my problem. I believe that this error message, <code>400</code>, shows up when the information sent to the controller is mulformed. I spent the last two days cross referrencing to another project I worked on in the past, which works, but I cannot pick up the problem.</p>
  
  <pre><code>@RequestMapping(value = {"/", "/home"}, method = RequestMethod.GET)
      public String homePage(ModelMap model) {
         model.addAttribute("user", getPrincipal());
      Catalog catalog = catalogService.getCatalogByCategory(Catalog.CatalogCategory.ALL);
  
      model.addAttribute("catalog", catalog);
      return "welcome";
  }
  </code></pre>
  
  <p>This sends the data to a JSTL Spring form on my JSP as follows:</p>
  
  <pre><code>&lt;form:form method="POST" modelAttribute="catalog"&gt;
          &lt;form:hidden path="id"/&gt;
          &lt;form:hidden path="name"/&gt;
          &lt;form:hidden path="category"/&gt;
          &lt;form:hidden path="orderItems"/&gt;
  
  
          &lt;div id="products" class="row list-group"&gt;
              &lt;c:forEach var="orderItem" items="${catalog.orderItems}"&gt;
  
                  &lt;div class="item  col-xs-4 col-lg-4"&gt;
                      &lt;div class="thumbnail"&gt;
                          &lt;img class="group list-group-image" src="http://placehold.it/400x250/000/fff" alt=""/&gt;
  
                          &lt;div class="caption"&gt;
                              &lt;h4 class="group inner list-group-item-heading"&gt;
                                      ${orderItem.name}&lt;/h4&gt;
  
                              &lt;p class="group inner list-group-item-text"&gt;
                                      ${orderItem.description}
                              &lt;/p&gt;
  
                              &lt;div class="row"&gt;
                                  &lt;div class="col-xs-12 col-md-6"&gt;
                                      &lt;p class="lead"&gt;
                                          R ${orderItem.price}&lt;/p&gt;
                                  &lt;/div&gt;
                                  &lt;div class="col-xs-12 col-md-6"&gt;
                                      &lt;label for="${orderItem.id}" class="btn btn-primary"&gt;Add to Cart &lt;input
                                              type="checkbox" id="${orderItem.id}" name="orderItem.addedToCart"
                                              class="badgebox"&gt;&lt;span class="badge"&gt;&amp;check;&lt;/span&gt;&lt;/label&gt;
                                  &lt;/div&gt;
                              &lt;/div&gt;
                          &lt;/div&gt;
                      &lt;/div&gt;
                  &lt;/div&gt;
              &lt;/c:forEach&gt;
          &lt;/div&gt;
  
          &lt;div class="row"&gt;
              &lt;div class="form-group"&gt;
                  &lt;div class="col-sm-12 pull-right"&gt;
                  &lt;/div&gt;
                  &lt;div class="col-sm-2 pull-right"&gt;
  
                      &lt;input type="submit"
                             class="btn btn-default btn-block btn-primary"
                             value="Next" name="action" formmethod="POST"
                             formaction="confirmList"/&gt;
  
                  &lt;/div&gt;
              &lt;/div&gt;
          &lt;/div&gt;
      &lt;/form:form&gt;`
  </code></pre>
  
  <p>At this point I submit the form to the following listener in my controller:</p>
  
  <pre><code>@RequestMapping(value = "/confirmList", method = RequestMethod.POST)
  public String confirmList(@ModelAttribute Catalog catalog, @ModelAttribute     String numberOfItemsAdded) {
  
       List&lt;OrderItem&gt; selectedItems = new ArrayList&lt;OrderItem&gt;();
      for (OrderItem orderItem : catalog.getOrderItems()) {
          if (orderItem.isAddedToCart()) {
              selectedItems.add(orderItem);
          }
      }
      //model.addAttribute("numberOfItemsAdded", selectedItems.size());
      return "welcome";
  }
  </code></pre>
  
  <p>That's it, execution flow does NOT even reach back my controller. Exhausting bug because I really do not understand what I am doing wrong here. Thank you in advance</p>
  
  <p>EDIT:</p>
  
  <p><code>Catalog.java</code></p>
  
  <pre><code> @Entity
   @Table(name="Catalogs")
   public class Catalog{
  
   private long id; //generated value using hibernate ...
   private String name; //column annotated by @Column
   private String category;// column also annotated by @Column
   private List&lt;OrderItem&gt; orderItems;// one to many mapping
  
    //getters and setters here
  }
  </code></pre>