Я воспользовался таким количеством примеров такого рода и предлагаемыми решениями с этого сайта, но ни одно из решений, представленных на нем, не относится к моей проблеме. Я считаю, что это сообщение об ошибке, 400
, появляется, когда информация, посланная контроллеру, выполняется. Я провел последние два дня, перекрестные ссылки на другой проект, над которым я работал в прошлом, который работает, но я не могу решить проблему.400 запрос, отправленный клиентом, был синтаксически неправильным
@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";
}
Это посылает данные в JSTL Spring форму на моем JSP следующим образом:
<form:form method="POST" modelAttribute="catalog">
<form:hidden path="id"/>
<form:hidden path="name"/>
<form:hidden path="category"/>
<form:hidden path="orderItems"/>
<div id="products" class="row list-group">
<c:forEach var="orderItem" items="${catalog.orderItems}">
<div class="item col-xs-4 col-lg-4">
<div class="thumbnail">
<img class="group list-group-image" src="http://placehold.it/400x250/000/fff" alt=""/>
<div class="caption">
<h4 class="group inner list-group-item-heading">
${orderItem.name}</h4>
<p class="group inner list-group-item-text">
${orderItem.description}
</p>
<div class="row">
<div class="col-xs-12 col-md-6">
<p class="lead">
R ${orderItem.price}</p>
</div>
<div class="col-xs-12 col-md-6">
<label for="${orderItem.id}" class="btn btn-primary">Add to Cart <input
type="checkbox" id="${orderItem.id}" name="orderItem.addedToCart"
class="badgebox"><span class="badge">✓</span></label>
</div>
</div>
</div>
</div>
</div>
</c:forEach>
</div>
<div class="row">
<div class="form-group">
<div class="col-sm-12 pull-right">
</div>
<div class="col-sm-2 pull-right">
<input type="submit"
class="btn btn-default btn-block btn-primary"
value="Next" name="action" formmethod="POST"
formaction="confirmList"/>
</div>
</div>
</div>
</form:form>`
В этот момент я отправить форму следующего слушателя в моем контроллере:
@RequestMapping(value = "/confirmList", method = RequestMethod.POST)
public String confirmList(@ModelAttribute Catalog catalog, @ModelAttribute String numberOfItemsAdded) {
List<OrderItem> selectedItems = new ArrayList<OrderItem>();
for (OrderItem orderItem : catalog.getOrderItems()) {
if (orderItem.isAddedToCart()) {
selectedItems.add(orderItem);
}
}
//model.addAttribute("numberOfItemsAdded", selectedItems.size());
return "welcome";
}
Вот и все, поток выполнения даже не доходит до моего контроллера. Изнурительная ошибка, потому что я действительно не понимаю, что я делаю неправильно здесь. Спасибо заранее
EDIT:
Catalog.java
@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<OrderItem> orderItems;// one to many mapping
//getters and setters here
}
сообщения вашего класса 'Catalog' и регулируйте на сторону сервера протоколирование отлаживать и посмотреть, что он говорит. – chrylis
Спасибо за ваш быстрый ответ. Пожалуйста, см. Каталог.java, показанный выше –